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

2024-04-20 09:26:49 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试编写一个函数,它接受一个字符串(作为一个文件),在该文件中,它在单独的行中包含数字(整数和浮点),然后我想打印文件中大于零的数字。我对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

有人能给我解释一下我做错了什么,我需要做些什么来弥补吗?你知道吗


Tags: 文件函数字符串intxtnumberifline
1条回答
网友
1楼 · 发布于 2024-04-20 09:26:49

使用^{} 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

相关问题 更多 >