如何在python中更新文件行
如何在Python中更新现有的文件行 示例:我想将如何在python中更新文件行,python,Python,如何在Python中更新现有的文件行 示例:我想将session.xml更新为sesion config.xml,而无需写新行 输入A.txt: fix-config = session.xml fix-config = session-config.xml 预期输出A.txt: fix-config = session.xml fix-config = session-config.xml 你不能在文本文件中改变行-你必须写一个全新的行,如果不是在文件的末尾,就需要重写所有其他的行 最
session.xml
更新为sesion config.xml
,而无需写新行
输入A.txt
:
fix-config = session.xml
fix-config = session-config.xml
预期输出A.txt
:
fix-config = session.xml
fix-config = session-config.xml
你不能在文本文件中改变行-你必须写一个全新的行,如果不是在文件的末尾,就需要重写所有其他的行 最简单的方法是将文件存储在列表中,对其进行处理,然后创建一个新文件:
with open('A.txt') as f:
l = list(f)
with open('A.txt', 'w') as output:
for line in l:
if line.startswith('fix-config'):
output.write('fix-config = session-config.xml\n')
else:
output.write(line)
@TigerhawkT3建议的解决方案非常适合中小型文件。 对于非常大的文件,可能无法将整个文件加载到内存中,然后需要分别处理每一行。 按照这些思路应该可以做到:
import shutil
with open('A.txt') as input_file:
with open('temp.txt', 'w') as temp_file:
for l in input_file:
if l.startswith('fix-config'):
temp_file.write('fix-config = session-config.xml\n')
else:
temp_file.write(l)
shutil.move('temp.txt', 'A.txt')
您是要覆盖一行还是覆盖整个文件?可能的重复项此问题有一个完全重复项。你觉得怎么样?如果你看到一个常见的问题和一个流行的规范副本,你可以用这个副本投票或标记该问题以结束。@Jarvis-这些都是非常熟悉的词:P