【发布时间】: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: