当前位置: 代码迷 >> python >> 替换一行的最后一个值
  详细解决方案

替换一行的最后一个值

热度:40   发布时间:2023-06-27 21:55:48.0

我希望将该行的最后一个值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循环中的另一个代码段一起递增。

取代这个

x.replace(float(V1[-1]),float(v1val))

有了这个

x = x.replace(float(V1[-1]),float(v1val))

string.replace()不会修改字符串(实际上,python字符串是不可变的)。 而是返回一个新字符串,然后可以将其分配给变量。

您还需要使用f.write()将新版本的x写回到文件中。

这是替换最后一个值的一种方法(我以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'
  相关解决方案