首页 > 解决方案 > 在Python中替换文本文件中特定行中的str

问题描述

def replace_line(file_name, line_num, find, replace):
    lines = open(file_name, 'r').readlines()
    print("This : ", find, " will be replaced for this: ", replace)
    lines[line_num].replace(find, replace)
    out = open(file_name, 'w')
    out.writelines(lines)
    out.close()

replace_line('text.txt', 3, 'num="200.00"\n', 'num="7.00"\n')

我正在尝试替换文本文件中特定行中的特定“str”,但是它不会改变任何内容。我使用 Python 3.9

标签: python

解决方案


您需要将输出分配给变量。字符串在 python 中是不可变的,因此str.replace()返回一个新字符串。

def replace_line(file_name, line_num, find, replace):
    lines = open(file_name, 'r').readlines()
    print("This : ", find, " will be replaced for this: ", replace)
    lines = lines[line_num].replace(find, replace) ### < Fixed this line
    out = open(file_name, 'w')
    out.writelines(lines)
    out.close()

replace_line('text.txt', 3, 'num="200.00"\n', 'num="7.00"\n')

推荐阅读