我希望替换此行的最后一个值
V1 N0005 0 0.1
由连续变化的值表示,即我将此行的最后一个值作为v1val
变量变量并使用while循环增加它。但我无法取代它。
请帮助我替换该值的命令
我的代码段是
v1val+=0.1
f=open("Draft2.net",'r+')
for x in f:
if x.startswith('V1'):
V1=float(x.split(' ')[-1])
x.replace(float(V1[-1]),float(v1val))
f.close()
该值与另一个处于while循环中的片段一起递增。
答案 0 :(得分:0)
替换此
x.replace(float(V1[-1]),float(v1val))
用这个
x = x.replace(float(V1[-1]),float(v1val))
string.replace()
不会修改字符串(实际上,python字符串是不可变的)。相反,它返回一个新的字符串,然后可以将其分配给变量。
您还需要使用f.write()
将新版本的x写回文件。
答案 1 :(得分:0)
以下是替换最后一个值的一种方法(我使用0.2
作为示例):
In [11]: s = "V1 N0005 0 0.1"
In [12]: " ".join(s.split()[:-1] + ["0.2"])
Out[12]: 'V1 N0005 0 0.2'