首页 > 解决方案 > 从文件中读取值并输出文件中的每个数字、最大/最小数字、总和以及数字的平均值

问题描述

我遇到的问题是我能够从文件中读取信息,但是当我尝试将它们从字符串转换为整数时,出现错误。我也有最小/最大打印为整个文件内容的问题。

我尝试过使用 if/then 语句以及为文件中的每一行使用不同的变量。

file=input("Which file do you want to get the data from?")
f=open('data3.txt','r')
sent='-999'
line=f.readline().rstrip('\n')
while len(line)>0:
    lines=f.read().strip('\n')
    value=int(lines)
    if value>value:
        max=value
        print(max)
    else:
        min=value
        print(min)
    total=sum(lines)
    print(total)

我希望代码能够找到文件中数字的最小/最大值以及文件中数字的总和和平均值。在代码中处理文件的结果,然后必须写入不同的文件。我的结果包括读取 Python 无法从 str 转换为 int 以及打印整个文件的内容而不是预期结果的各种错误。

标签: python-3.x

解决方案


以下工作吗?

lines = list(open('fileToRead.txt'))
intLines = [int(i) for i in lines]
maxValue = max(intLines)
minvalue = min(intLines)
sumValue = sum(intLines)
print("MaxValue : {0}".format( maxValue))
print("MinValue : {0}".format(minvalue))
print("Sum : {0}".format(sumValue))
print("Avergae : {0}".format(sumValue/len(intLines)))

这就是我filesToRead.txt的公式(实际上只是一个简单的公式)

10
20
30
40
5
1

我正在将文件内容读入列表。然后我创建一个新列表(它可以与上一步作为一些代码重构的一部分加入),其中包含所有整数列表。一旦我有了整数列表,就更容易计算max和计算min它。

请注意,某些变量的命名不正确如果文件太大,一次性读取整个文件(就像我在这里所做的那样)可能不是一个好主意。在这种情况下,您永远不应该一口气读完整个文件。在这种情况下,您需要逐行阅读,解析整数并将它们添加到整数列表中。读完文件后,关闭文件。然后,您可以根据您现在获得的整数列表开始计算。

如果这能解决您的问题,请告诉我。

谢谢


推荐阅读