以下是我的替换线功能:
def replace_line(file_name, num, replaced):
f = open(file_name, 'r', encoding='utf-8')
lines = f.readlines()
lines[num] = replaced
f.close()
f = open(file_name, 'w', encoding='utf-8')
f.writelines(lines)
f.close()
我正在使用以下行来运行我的代码:
replace_line('Store.txt', int(line), new)
当我运行我的代码时,它会替换该行,但它也会删除该行之后的所有内容。例如,如果这是我的列表:
答案 0 :(得分:1)
说实话,我不确定原始功能有什么问题。但我尝试重做它,这似乎工作正常:
def replace_line(file_name, line_num, text):
with open(filename, 'r+') as f:
lines = f.read().splitlines()
lines[line_num] = text
f.seek(0)
f.writelines(lines)
f.truncate()
请注意这会覆盖整个文件。如果您需要处理大型文件或关注内存使用情况,您可能需要 尝试另一种方法。