从文件中读取值并输出文件中的每个数字,最大/最小数字,总和和平均值

时间:2019-04-07 22:32:30

标签: python-3.x

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

我尝试过使用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转换为int,并且无法打印整个文件的内容而不是预期的结果。

1 个答案:

答案 0 :(得分:0)

以下工作吗?

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

我正在将文件内容读入列表。然后,我创建了一个包含所有int列表的新列表(可以将其与上一步结合在一起,作为某些代码重构的一部分)。一旦获得了int列表,则可以更容易地计算max和{ {1}}。

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

请告诉我是否可以解决您的查询。

谢谢