使文件中的所有值都可以转换为float

时间:2016-04-27 09:48:04

标签: 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 ValueError:
                pass
            else:
                f2.write(i + " ")
        f2.write("\n")

当我检查文件时(使用与上面类似的代码,没有尝试除外),我仍然可以看到不可转换为float的值。这是怎么发生的?

1 个答案:

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