如何读取文件中的浮点数和整数?

时间:2013-06-02 16:20:18

标签: python python-3.x

我正在尝试编写一个带字符串(作为文件)的函数,并且在该文件中它包含单独行上的数字(整数和浮点数)。然后我想在文件中打印数字大于零。我是python的新手,所以我在输出工作时遇到了一些麻烦。 到目前为止我有:

def getPositive(filename):
    infile = open(filename, 'r')
    content = (infile.read())
    infile.close()

    for number in content:
        if number <= 0:
            print (content.remove(number))

我不断收到错误

>>> getPositive('nums1.txt')
Traceback (most recent call last):
  File "<pyshell#11>", line 1, in <module>
    getPositive('nums1.txt')
  File "/Users/XXXX/Desktop/test.py", line 8, in getPositive
    if number <= 0:
TypeError: unorderable types: str() <= int()

另外,在我的文件中我有:

59
-3.2
12.99
-1
45.3
20

我希望它只打印:

59
12.99
45.3
20

有人可以向我解释我做错了什么以及我需要做些什么来解决它?

1 个答案:

答案 0 :(得分:1)

使用float() function将文件中的字符串转换为数字:

for line in content:
    number = float(line)
    if number > 0:
        print(number)

无需读取内存中的整个文件;逐行处理:

def getPositive(filename):
    with open(filename, 'r') as infile:
        for line in infile:
            number = float(line)
            if number > 0:
                print(line.rstrip())

with语句确保文件对象自动关闭。

输出:

>>> getPositive('/tmp/test.txt')
59
12.99
45.3
20