小康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日

悬赏问题

  • ¥15 STM32单片机自主设计
  • ¥15 如何在node.js中或者java中给wav格式的音频编码成sil格式呢
  • ¥15 不小心不正规的开发公司导致不给我们y码,
  • ¥15 我的代码无法在vc++中运行呀,错误很多
  • ¥50 求一个win系统下运行的可自动抓取arm64架构deb安装包和其依赖包的软件。
  • ¥60 fail to initialize keyboard hotkeys through kernel.0000000000
  • ¥30 ppOCRLabel导出识别结果失败
  • ¥15 Centos7 / PETGEM
  • ¥15 csmar数据进行spss描述性统计分析
  • ¥15 各位请问平行检验趋势图这样要怎么调整?说标准差差异太大了