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