代码之家  ›  专栏  ›  技术社区  ›  anijhaw

python中的command.getstatusoutput()缓冲区是否有限制

  •  3
  • anijhaw  · 技术社区  · 16 年前

    我已经创建了一个脚本,在一批文件上运行测试脚本,已经测试了两个晚上,但是它只是挂起在某个点上。

    更新:

    1 回复  |  直到 16 年前
        1
  •  6
  •   Otto Allmendinger    16 年前

    getstatusoutput() 返回一个字符串,该字符串可能非常长,因此会占用大量空间,并导致对磁盘的分页和其他讨厌的事情。

    commands 模块已弃用,最好使用 subprocess 模块,提供对流程输出的类似文件的访问。如果以后需要输出,只需将其写入硬盘上的文件即可

    cmd = subprocess.Popen(['ls'], stdout=file('output', 'w'))
    

    cmd = subprocess.Popen(['ls'], stdout=subprocess.PIPE)
    for line in cmd.stdout:
        do_stuff(line)