如何在python中编辑文本文件的一行



我有一个txt文件,看起来像这样:

112

我只是想使用Python命令将1添加到该行。什么好主意吗?

这感觉太像学习/家庭作业了,所以我们不要破坏它:

  1. 读取要编辑的行之前的所有行,并将它们写入临时输出文件
  2. 读取该行,附加1,并将其写入临时输出文件
  3. 读取要编辑的行之后的所有行,并将它们写入临时输出文件
  4. 关闭输入文件,取消链接/删除它,并重新命名临时文件,以便它取代原始文件。

您也可以就地编辑文件,但它要求您首先将之后的所有行读取到临时缓冲区中,然后修改该行,然后覆盖修改位置之后的所有内容。

文件没有"行"的概念。它们以字节为单位。如果你需要在文件的某个地方插入一个字节,你需要将该字节位置之后的所有内容向后移动。

您应该阅读文件,替换行并重写文件,如:

with open('file.txt', 'r') as file :
filedata = file.read()

filedata = filedata.replace('112', '1112')

with open('file.txt', 'w') as file:
file.write(filedata)

如果你想给所有行加1,你可以使用一些东西来修改所有行,比如:

with open('file.txt', 'r') as file :
filedata = file.read()
list_num = []
for num in  filedata.split('n')[:-1]:
list_num.append(str(int(num)+1))
'n'.join(list_num)
with open('file.txt', 'w') as file:
file.write('n'.join(list_num) + 'n')    

最新更新