【问题标题】:Python time stamp does not print - open large txtPython时间戳不打印 - 打开大文本
【发布时间】:2023-03-29 05:57:01
【问题描述】:

下面的代码打开并循环一个 500 MB 的 txt 文件。它现在运行了将近半个小时,有趣的是它没有打印第一个'time.gmtime()'。我重新启动内核几次以检查问题,但一切似乎都很好。

为什么 python 不打印我最初的 'time.gmtime()'?

print time.gmtime()

with open(FullPath) as FileObj:
    for lines in FileObj:
        i +=1
print i

print time.gmtime()

编辑:

只需在一个小得多的文件 (1523KB) 上运行完全相同的代码,这就是我得到的:

time.struct_time(tm_year=2015, tm_mon=4, tm_mday=27, tm_hour=14, tm_min=11, tm_sec=28, tm_wday=0, tm_yday=117, tm_isdst=0)
2852
time.struct_time(tm_year=2015, tm_mon=4, tm_mday=27, tm_hour=14, tm_min=11, tm_sec=41, tm_wday=0, tm_yday=117, tm_isdst=0)

详细信息:仅在代码完成时打印的两个时间戳!

【问题讨论】:

  • "我重启了内核"什么内核?
  • 巴克,您发布的代码似乎没有任何问题。您确定标准输出没有被另一个进程捕获吗?最后一个time.gmtime() 打印了吗?
  • @Tichodroma。在 Canopy 中:运行/重新启动内核。它只是一种破解代码的方法。
  • @TimberlakeCoding。还没看到代码的结尾!并且不想让它运行几个小时,然后在某个时候发现基本错误。但如果我评论主循环代码运行良好!
  • 可能由于系统内存不足,脚本冻结了?尝试使用with open(FullPath, 1000) as FileObj:

标签: python time canopy


【解决方案1】:

您需要在第一次打印后 import sys;sys.stdout.flush() 默认情况下作为 canopy 缓冲区标准输出。

【讨论】:

  • 添加这行代码后,在代码循环文件之前会打印第一个“time.gmtime”。
猜你喜欢
  • 2014-08-15
  • 1970-01-01
  • 1970-01-01
  • 2014-10-19
  • 1970-01-01
  • 1970-01-01
  • 2017-10-28
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多