问题描述
我希望将该行的最后一个值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循环中的另一个代码段一起递增。
1楼
取代这个
x.replace(float(V1[-1]),float(v1val))
有了这个
x = x.replace(float(V1[-1]),float(v1val))
string.replace()
不会修改字符串(实际上,python字符串是不可变的)。
而是返回一个新字符串,然后可以将其分配给变量。
您还需要使用f.write()
将新版本的x写回到文件中。
2楼
这是替换最后一个值的一种方法(我以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'