[英]How to write to a specific line of a file?
假設我有一個文本文件
Line 1
Line 2
Line 3
我通讀了一下,決定將2號線更改為2號線。 我可以在Python中優雅地做到這一點,而不必簡單地用更改重寫文件嗎? 我嘗試使用file.seek(),但是它並沒有真正意義,也不知道它到底能做什么。
文件是字節序列。 如果要在中間更改需要更多或更少字節表示的內容,則文件的其余部分需要調整大小。
因為文件是存儲介質上字節的物理序列,所以這意味着您需要重寫文件的其余部分 。 換句話說,您需要移至第二line 2
之后的所有內容。
實際上,這意味着重寫文件,因為這更容易實現。
您需要就地編輯的功能,該功能由fileinput
模塊提供:
inplace-edit.py:
import sys
import fileinput
for line in fileinput.input(sys.argv[1], inplace=1):
line = line.rstrip() # Remove the new line
if line == 'Line 2':
line = 'Line two'
print line
data.txt:
Line 1
Line 2
Line 3
要運行它:
python inplace-edit.py data.txt
產生的data.txt:
Line 1
Line two
Line 3
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.