[英]Read through a file and write to the line I just read
因此,我想通讀一個文件,檢查每一行,看看它是否包含我要查找的字符串的一部分。 找到正確的行后,我想在文件中重寫該行。
這是我到目前為止的內容:
f = open("playlist.py", "r+")
for line in f:
if old in line:
f.write(" " + str(item) + ":" + " " +
"\"" + new_text + "\"")
f.close()
break
f.close()
該代碼找到正確的行,但寫入文件的末尾。 我有點想讀和寫迭代器將被共享,但我想不是:(
使用文件fileinput
import fileinput
for line in fileinput.input("test.txt", inplace=True):
if contains_str_youlookingfor:
print "what_you_want_to_rewire"
else:
print line.rstrip()
fileinput.close()
如果您使用的是Python 3.2+,則首選上下文管理器:
with fileinput.input("test.txt", inplace=True) as f:
for line in f:
if contains_str_youlookingfor:
print("what_you_want_to_rewire")
else:
print(line, end='')
這些行將被替換為"what_you_want_to_rewire"
,並且不會創建新文件。
編輯
如果您不刪除原始換行符或在沒有換行符的情況下進行打印,則會得到多余的空白行。
您可以使用r +模式打開文件,然后將內容讀入列表並替換包含所需數據的行(列表項),然后將整個文件寫回到仍打開的文件中嗎? 像這樣的東西
f=open(filename, 'r+')
data=f.readlines()
for line in data:
if old in line:
line=" " + str(item) + ":" + " " +
"\"" + new_text + "\""
f.truncate()
f.writelines(data)
f.close()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.