簡體   English   中英

如何寫入文件的特定行?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM