Python:替换行清除所有内容

时间:2016-11-17 17:09:46

标签: python

以下是我的替换线功能:

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)

当我运行我的代码时,它会替换该行,但它也会删除该行之后的所有内容。例如,如果这是我的列表:

1 个答案:

答案 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()
  

请注意这会覆盖整个文件。如果您需要处理大型文件或关注内存使用情况,您可能需要   尝试另一种方法。