【问题标题】:Python / IDLE CPU usage for no reasonPython / IDLE CPU无缘无故使用
【发布时间】:2011-04-28 14:56:26
【问题描述】:

这是我在 Windows 上使用 IDLE(具有相同 Python 版本的 2.6.5 版)时遇到的一个奇怪问题。

我尝试运行以下三个命令:

fid= open('file.txt', 'r')
lines=fid.readlines()
print lines

执行打印行命令时,pythonw.exe 进程 CPU 疯狂,消耗 100% 的 CPU,IDLE 似乎没有响应。 file.txt 大约 130 kb - 我不认为该文件很大!

当这些行最终打印出来时(几分钟后),如果我尝试向上滚动查看它们,我会再次遇到同样非常大的 CPU 使用率。

pythonw.exe 的内存使用量一直在 15-16 MB 左右。

任何人都可以向我解释这种行为 - 显然这不可能是 IDLE 中的错误,因为它会被发现......另外,我能做些什么来抑制这种行为?我喜欢将 IDLE 用于涉及文件数据转换的脚本之类的任务。

【问题讨论】:

  • 130kb,有问题。
  • 您是否在使用 std 解释器时遇到相同的行为(python.exe 而不是使用 pythonw.exe 的 IDLE)?
  • @Xavier:实际上不,命令行解释器 python.exe 工作得非常好,即使是更大的文件(我打开一个 426 kb 的 txt 文件没有问题)!此外,python.exe 的内存使用量为 3 MB - 当我打开并读取 426 KB 文件的留置权时,它变为 3.5 MB \o/ 所以这可能是 Windows 上 IDLE 的问题 - 任何人都可以确认这一点请?

标签: python cpu-usage python-idle


【解决方案1】:

尝试逐行阅读:

fid = open('file.txt', 'r')

for line in fid:
  print line

Input Output上的文档来看,读取文件似乎有两种方式:

print f.read() # This reads the *whole* file. Might be bad to do this for large files.

for l in f:    # This reads it line by line
  print l      # and prints it. Might be better for big files.

【讨论】:

  • 好吧,这可能是一个解决方案,但是我真的更喜欢在 python 中使用列表,使用列表理解而不是循环。也许对于非常大的文件,但对于正常的文件,我会使用命令行 python.exe,正如我在另一条评论中提到的那样......
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-04-26
  • 2017-04-11
  • 1970-01-01
  • 2023-04-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多