在Python中的文本文件中的特定位置编辑特定行

时间:2018-08-15 15:51:31

标签: python

我有两个变量 x1 = 123.12和y1 = 123.45 ,用于保存用户输入的值。现在我有一个文本文件,必须在其中更改当前的 245.42和130.32 使用变量 x1和y1 来保存用户输入的值。那么如何在python中修改文本文件

#text file:

var char12
name andy jordan
home illino

w1 345 3456 
p1 346 2123
addmoney 245.42
netmoney 130.32

1 个答案:

答案 0 :(得分:0)

只需打开现有文件并阅读各行。假设您要替换始终位于“ addmoney”和“ netmoney”之后的值,则可以找到这些行,并使用re.sub()将这些值替换为这些行。请记住,您不能简单地就地覆盖文本文件,因此您要存储修改后的行,然后在末尾重新创建一个新文件,如下所示:

x1 = 123.12
y1 = 123.45

import re

with open('mytextfile.txt', 'r') as f:
    lines = f.readlines()

    for i, l in enumerate(lines):

        if l.startswith('addmoney'):
            lines[i] = re.sub(r'[0-9.]+', str(x1), lines[i])
        elif l.startswith('netmoney'):
            lines[i] = re.sub(r'[0-9.]+', str(y1), lines[i])

out = open('modifiedtextfile.txt', 'w'); out.writelines(lines); out.close()