Python 替换函数中的"search for"参数是否有限制?



我使用Python搜索并替换.txt文件中的字符串。我需要替换值0.000001(小数点后6位(,代码不会替换此值,但会替换0.0001(小数点前4位(。因此,这个输入参数是否有一些限制(请参阅下面的代码(?

a0 = 0.000001
ka = 0.1
dt = 7
an = a0+ka*dt
with open('file.txt', 'r') as f:
data1 = f.read()
data1 = data1.replace(str(a0), str(an), 1)
with open ('file.txt', 'w', 1) as f:
f.write(data1)

这不是"极限"的问题,而是数字表示法的问题:

>>> a0 = 0.000001
>>> print(a0)
1e-06
>>> a0 = 0.0001
>>> print(a0)
0.0001
>>>

从文件中读取的"0.000001"字符串不会被替换,因为replace()方法将查找"1e-06"。"0.0001"不会出现同样的情况。

a0格式化为浮动,而不是:

...
data1 = data1.replace(str("%f" % a0), str(an), 1)
...

最新更新