关于#python#的问题:.txt文件中 有飞行员的名字 和飞行时长(会有重复 每月每位飞行员可能飞行N次)统计出 飞行员和他飞行的总时长

.txt文件中 有飞行员的名字 和飞行时长(会有重复 每月每位飞行员可能飞行N次)
统计出 飞行员和他飞行的总时长

我的思路是:
1、创建记录每个飞行员时间的字典
2、遍历飞行时间记录文件的每一行统计飞行时间:首先把遍历到的每一行分隔成日期,姓名,飞行时间三部分,然后遍历字典,如果存在记录则累积飞行时间,如果不存在则新增飞行记录
3、打印遍历文件统计好的飞行记录。
参考链接:
python一行一行读取文件的方法::圈点
python添加键值对的方法_python字典键值对的添加和遍历方法_weixin_39857211的博客-CSDN博客
代码如下:



#http://www.xoxxoo.com/index/index/article/id/424
dic={} #创建记录每个飞行员的飞行时间的字典
find=0
with open("case1.txt") as file:  #遍历文件的每一行,统计飞行员的飞行时间
    for line in file:
        
        #https://www.w3cschool.cn/article/7798143.html
        record = line.split("\t") #把每一行按制表符分隔
        date = record[0]  #第一个是日期
        name = record[1] #第二个是姓名
        time = record[2] #第三个是飞行时间
        #print("date:",date,"name:",name,"time:",time)
        
        for key ,value in dic.items(): #遍历飞行记录字典,如果存在飞行记录则累加飞行时间,如果不存在,则添加新记录
            
            if key == name :  #判断飞行记录字典是否存在当前飞行员的记录
                find=1
                oritime=int(value)
                #print("name is:",key,"has record, oritime is :", oritime)
        
    

         #https://blog.csdn.net/weixin_39857211/article/details/110380948   
        if find == 1:      #如果存在飞行记录,则累加飞行时间
            dic[name]=int(time)+oritime
        else :   #如果不存在飞行记录,则添加新记录
            dic.setdefault(name,int(time))
        find=0   #查找标记置0,表示默认没有记录  


#遍历飞行记录字典,打印每一个飞行员的飞行时间统计
for key in dic:

    print(key,"总的飞行时间是: ",dic[key])



case1.txt

20220101    张三    92
20220110    张三    90
20220125    张三    89
20220102    李四四    97
20220126    李四四    88
20220102    王五    108
20220112    王五    99
20220127    王五    70
20220103    赵小六    120
20220115    赵小六    110
20220126    赵小六    89
20220107    孙七    108
20220118    孙七    111
20220128    孙七    70

img