Python 使文件中的所有值都可转换为浮点值

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

我想把一个文件中的所有值都输入到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")
当我检查文件时(使用与上面类似的代码,不使用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感谢您的提醒。答案已编辑。哪些内容被转换为
浮点
,即使它不应该?可能是额外的空格和空字符,我不知道哪些内容被转换为
浮点
,即使它不应该?可能是额外的空格和空字符,我不知道