Bir dosyayı nasıl açabilirim, Stud.txt ve sonra "Turuncu" ile "A" nın tüm oluşumlarını nasıl değiştirebilirim?İçindekileri dizinin içine değiştirme İçindekiler
cevap
with open("Stud.txt", "rt") as fin:
with open("out.txt", "wt") as fout:
for line in fin:
fout.write(line.replace('A', 'Orange'))
@Blue - ev ödevi kılavuzları ev ödevi soruları için cevapları düşürmemeyi söyler. Özellikle de bunun gibi olanlar muhtemelen meşrudur. Bunu yapmanın doğru yolu için +1. Metin modu için – katrielalex
"t" sadece Python 3'tür. Ayrıca, ouput dosyanız için bir içerik yöneticisi sağlarsınız, ancak giriş dosyanızı kapatmaz, bu tutarsız gibi görünür. –
@katrielalex: Downvot yok, sadece fazla vermedim. Ancak ödevlere cevap vermek [bunu yapmak için doğru yol değil] (http://meta.stackexchange.com/questions/10811/how-to-ask-and-answer-homework-questions) –
with open('Stud.txt','r') as f:
newlines = []
for line in f.readlines():
newlines.append(line.replace('A', 'Orange'))
with open('Stud.txt', 'w') as f:
for line in newlines:
f.write(line)
şey
gibifile = open('Stud.txt')
contents = file.read()
replaced_contents = contents.replace('A', 'Orange')
<do stuff with the result>
en kolay yolu ('A' saklanabilir olurdu) dosyasındaki her hattı üzerinden yineleme istiyorum varsayarak düzenli ifadeler ile yapmaktır Eğer aynı dosyada dizeleri değiştirmek isterseniz
import re
input = file('C:\full_path\Stud.txt), 'r')
#when you try and write to a file with write permissions, it clears the file and writes only #what you tell it to the file. So we have to save the file first.
saved_input
for eachLine in input:
saved_input.append(eachLine)
#now we change entries with 'A' to 'Orange'
for i in range(0, len(old):
search = re.sub('A', 'Orange', saved_input[i])
if search is not None:
saved_input[i] = search
#now we open the file in write mode (clearing it) and writing saved_input back to it
input = file('C:\full_path\Stud.txt), 'w')
for each in saved_input:
input.write(each)
, muhtemelen yerel içine içeriğini okumak zorunda ... do Değişken, kapatın ve yeniden açın yazma: I with
blok sona ermesinden sonra dosyayı kapatır, bu örnekte, içinde the with statement kullanıyorum
- ya son komutunu yerine getirmek, veya bir istisna ile biter, normal olarak zaman.
def inplace_change(filename, old_string, new_string):
# Safely read the input filename using 'with'
with open(filename) as f:
s = f.read()
if old_string not in s:
print '"{old_string}" not found in {filename}.'.format(**locals())
return
# Safely write the changed content, if found in the file
with open(filename, 'w') as f:
print 'Changing "{old_string}" to "{new_string}" in {filename}'.format(**locals())
s = s.replace(old_string, new_string)
f.write(s)
Bu dosya isimleri farklı olsaydı, biz tek with
ifadesiyle bu daha zarif yapmış olabilir söz etmek gerekiyor.
Bu çözüm daha iyi çünkü dosyayı yukarıdaki cevapta tersine çevirmiyorsunuz. –
Neden kapatmadan önce() hemen flush()? Umarım close() gerekli olan herşeyi yapar. – ChrisPhoenix
@ChrisPhoenix [Doğru] (http://stackoverflow.com/questions/2447143/does-close-imply-flush-in-python), "with" yi kullanabiliriz ve hem "close" hem de "floştan" kurtulabiliriz . –
#!/usr/bin/python
with open(FileName) as f:
newText=f.read().replace('A', 'Orange')
with open(FileName, "w") as f:
f.write(newText)
Eğer linux üzerinde olan ve sadece yapabileceğiniz bir sözcüğü değiştirmek isterseniz:
text.txt:
Hi, i am a dog and dog's are awesome, i love dogs! dog dog dogs!
Linux Komut:
sed -i 's/dog/cat/g' test.txt
Çıktı:
Hi, i am a cat and cat's are awesome, i love cats! cat cat cats!
Orijinal Mesaj: https://askubuntu.com/questions/20414/find-and-replace-text-within-a-file-using-commands
- 1. İçindekiler içindekileri hizalamaGrid sütunları
- 2. Dosya İçindekiler İçindekiler CasperJS
- 3. Diğer İçindekiler İçindekiler
- 4. Java Özgün Karakterli Dizinin Parçasını Değiştirme
- 5. Bir dizinin
- 6. İÇİNDEKİLER TSQL
- 7. İçindekiler NSMutableData
- 8. Linq to XML - İçindekiler dönüşümü
- 9. anahtarlar kaldırılmış halde dizinin içine düz kesim ruby hash
- 10. değiştirme değeri
- 11. Oracle İçindekiler çalışmıyor
- 12. Pandoc HTML İçindekiler Çıktı
- 13. İçindekiler/MacOS, 4.5.2
- 14. İçindekiler ve dilimleri
- 15. C# İçindekiler Yöntem
- 16. İçindekiler ile kapsam raylar
- 17. LaTex İçindekiler Tablosu
- 18. Powershell Zip Klasör İçindekiler
- 19. Baskı NSMutableURLRequest İçindekiler
- 20. İmleç C# içine kaçırmadan fare/kalem olayları klonlama ve değiştirme?
- 21. PHP - dizinin
- 22. pascal dizinin dosya ve dizinin
- 23. C# İçindekiler ile ContainsKey onay
- 24. nasıl LaTeX'de içindekiler unvanı ortalayabilirsiniz?
- 25. Javascript ile Değişken Kapsam İçindekiler
- 26. İçindekileri görmek için Komut Satırı Paylaşılan Nesne Modülü (lib * .so)
- 27. Diziyle iki dizinin birleştirilmesi
- 28. Swift, dizinin
- 29. ESLint, dizinin
- 30. char [] dizi harfini değiştirme ve değiştirme
(her zaman olduğu gibi) takip ediniz [genel soru yönergeleri] (http://tinyurl.com/so-hints), devlet herhangi bir özel kısıtlama, ne göstermek sen Şimdiye kadar denedim ve özellikle neyin kafa karıştırıcı olduğunu sor. –
Lütfen, ödevinizi [ev ödevi] etiketiyle işaretleyin. –
related: [Python kullanarak bir dosyada metin nasıl aranır ve değiştirilir?] (Http://stackoverflow.com/q/17140886/4279) – jfs