小康2022 2021-12-04 10:13 采纳率: 87.5%
浏览 29
已结题

谁能帮我看看这是什么情况?(语言-python)

问题遇到的现象和发生背景
'''
文本内容为:
001 08:00:20 0
001 08:15:15 1
001 08:25:16 2
004 10:23:17 0
002 16:45:59 0

'''
问题相关代码
#计算每一小时内这个0的个数
#代码如下:
file = open(r'the path of txt','r')
for time in ['08','09','10','11','12','13','14','15','16']:
    count = 0
    for line in file:
        if line[4:6] == time and line[-2] == '0':count +=1
    print('%s:00:00 - %s:59:59 : %d'%(time,time,count))
#说明:the path of txt 是一个文本文件的路径
运行结果及报错内容
'''
08:00:00 - 08:59:59 : 1
09:00:00 - 09:59:59 : 0
10:00:00 - 10:59:59 : 0
11:00:00 - 11:59:59 : 0
12:00:00 - 12:59:59 : 0
13:00:00 - 13:59:59 : 0
14:00:00 - 14:59:59 : 0
15:00:00 - 15:59:59 : 0
16:00:00 - 16:59:59 : 0
'''
我想要达到的结果
'''
08:00:00 - 08:59:59 : 1
09:00:00 - 09:59:59 : 0
10:00:00 - 10:59:59 : 1
11:00:00 - 11:59:59 : 0
12:00:00 - 12:59:59 : 0
13:00:00 - 13:59:59 : 0
14:00:00 - 14:59:59 : 0
15:00:00 - 15:59:59 : 0
16:00:00 - 16:59:59 : 1
'''
  • 写回答

2条回答 默认 最新

  • 兰振lanzhen 2021-12-04 10:51
    关注

    1、打开文件要放在for循环内,这样才能完整的遍历;
    2、txt文件读取后,会有换行符干扰,要先去除。

    for time in ['08','09','10','11','12','13','14','15','16']:
        file = open(r't.txt','r')
        count = 0
        for line in file:
            line = line.strip().split(' ')   # 这里要先去掉换行符,否则有干扰
            if line[1].split(':')[0] == time and line[-1] == '0':
                count +=1
        print('%s:00:00 - %s:59:59 : %d'%(time,time,count))
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 12月12日
  • 已采纳回答 12月4日
  • 创建了问题 12月4日

悬赏问题

  • ¥50 mac mini外接显示器 画质字体模糊
  • ¥15 TLS1.2协议通信解密
  • ¥40 图书信息管理系统程序编写
  • ¥20 Qcustomplot缩小曲线形状问题
  • ¥15 企业资源规划ERP沙盘模拟
  • ¥15 树莓派控制机械臂传输命令报错,显示摄像头不存在
  • ¥15 前端echarts坐标轴问题
  • ¥15 ad5933的I2C
  • ¥15 请问RTX4060的笔记本电脑可以训练yolov5模型吗?
  • ¥15 数学建模求思路及代码