替换一行的最后一个值

时间:2014-03-14 12:51:38

标签: python python-2.7

我希望替换此行的最后一个值 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循环中的片段一起递增。

2 个答案:

答案 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'