我想将文件中的所有值转换为 float 。我正在接收文件 101.txt 并将可转换的值写入另一个文件 n101.txt 。
我的代码:
f2 = open('n101.txt', 'w+')
with open("101.txt", "r") as f:
for line in f:
for i in line.split(' '):
try:
float(i)
except ValueError:
pass
else:
f2.write(i + " ")
f2.write("\n")
当我检查文件时(使用与上面类似的代码,没有尝试除外),我仍然可以看到不可转换为float的值。这是怎么发生的?
答案 0 :(得分:2)
使用此:
f2 = open('n101.txt', 'w+')
with open("101.txt", "r") as f:
for line in f:
for i in line.split(' '):
try:
i = float(i)
except ValueError:
pass
else:
f2.write(str(i) + " ")
f2.write("\n")
f2.close()
float(i)
行本身并没有做任何事情。实际上它返回i
的浮点值,但不会改变i
本身。
以上程序如下:
#101.txt
1
2
3
输出:
#n101.txt
1.0
2.0
3.0