Python 使文件中的所有值都可转换为浮点值
我想把一个文件中的所有值都输入到float中。我正在接收文件101.txt,并将可类型转换的值写入另一个文件n101.txt 我的代码:Python 使文件中的所有值都可转换为浮点值,python,python-2.7,file,casting,Python,Python 2.7,File,Casting,我想把一个文件中的所有值都输入到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 ValueEr
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")
当我检查文件时(使用与上面类似的代码,不使用try-except),仍然可以看到不能转换为float的值。这是如何发生的?使用以下方法:
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
使用以下命令:
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
with
语句自动关闭文件f
,无需f.close()
@CristianCiupitu感谢您的提醒。答案已编辑。with
语句自动关闭文件f
,无需f.close()
@CristianCiupitu感谢您的提醒。答案已编辑。哪些内容被转换为浮点
,即使它不应该?可能是额外的空格和空字符,我不知道哪些内容被转换为浮点
,即使它不应该?可能是额外的空格和空字符,我不知道