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

在Python文本文件中的特定位置编辑特定行,python,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 只需打开现有文件并读取行即可。假设您希望替换始终位于“addm

我有两个变量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

只需打开现有文件并读取行即可。假设您希望替换始终位于“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()

这些值前面的文本是否始终为
addmoney
netmoney
?此问题缺少上下文或其他详细信息:请提供其他上下文来改进问题,其中最好包括您对问题的想法以及您为解决问题所做的任何尝试。这些信息有助于其他人识别您遇到的困难,并帮助他们写出适合您经验水平的答案。你还需要准确地说明问题是什么,你期望什么,你得到了什么,以及任何回溯。这是一个sudo文件,只有两个字,还有很多我只是想澄清概念,所以我给出了这个感谢代码@rahlf23,现在我澄清了概念。如果这回答了你的问题,请点击绿色标记接受我的回答。谢谢如果我想覆盖同一个文件,我必须使用相同的文件名,对吗?out=open('mytextfile.txt','w');out.writeline(行);out.close()@rahlf23你能给我解释一下这行的意思吗->行[i]=re.sub(r'[0-9.]+',str(x1),行[i])我能理解的其他事情@RAHLF23这部分
r'[0-9.]+'
只是指搜索
0-9
中的任何数字,以及任何
文字,
+
指示至少匹配一到无限个字符。请在此处查看
re.sub()
的文档: