无法获取两个值的总和

2024-09-30 22:22:19 发布

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

我正在做一些读取文件等的基本工作。我的任务是找出文件中有多少行(记录)和事件总数(其中一列的聚合)

我已经计算出了这两个数字,但是,当我把所有的代码放在一起时,我得到了其中一个条件的总和,另一个条件的总和是0。但是当我分别做每一个标准时,我没有问题

myFile = open("PS3_wnvhumancases.txt", "r")
nincidents = 0
for char in myFile.readlines():
    new_file = char.split(',')
    cases = new_file[-1]
    nincidents += int(cases)
nrecs = len(myFile.readlines())
print('Total Records Processed: ', nrecs)
print('Total Incidents: ', nincidents)
myFile.close()

上面的代码为我提供了正确的事件总数,0表示总报告

与此同时

myFile = open("PS3_wnvhumancases.txt", "r")
nrecs = len(myFile.readlines())
print('Total Records processed: ', nrecs)
nincidents = 0
for char in myFile.readlines():
    new_splt = char.split(',')
    cases = new_splt[-1]
    nincidents += int(cases)
print('Total Incidents: ', nincidents)
myFile.close()

这段代码为我提供了报告的数量,总事件数为0

有什么能给我两个数字的建议吗


Tags: 文件代码new事件数字条件myfiletotal
1条回答
网友
1楼 · 发布于 2024-09-30 22:22:19

当您执行.readlines()操作时,您正在耗尽文件。您需要seek返回开始,或者将输出保持为如下所示的变量:

myFile = open("PS3_wnvhumancases.txt", "r")
content = myFile.readlines()
nrecs = len(content)
print('Total Records processed: ', nrecs)
nincidents = 0
for char in content:
    new_splt = char.split(',')
    cases = new_splt[-1]
    nincidents += int(cases)
print('Total Incidents: ', nincidents)
myFile.close()

相关问题 更多 >