代码之家  ›  专栏  ›  技术社区  ›  Alex.JvV

Popen多行读取

  •  0
  • Alex.JvV  · 技术社区  · 7 年前

    我对python很陌生,我一直在使用popen执行命令,但我希望有多行响应,我需要分别使用每一行。

    我从一个教程中获得了以下代码。

    pipe = os.popen('dir')
            for line in pipe:
                print '--------------space---------------------'
                print pipe.readLine()
    

    AttributeError:“file”对象没有属性“readLine”

    有没有人对我有什么建议,或者对如何改进这一点有什么想法。

    谢谢你的帮助

    2 回复  |  直到 7 年前
        1
  •  1
  •   Mark Beilfuss    7 年前

    修复语法 readline 使用小写l。

    print pipe.readline() --&燃气轮机; print line .

    import os
    pipe = os.popen('dir')
    for line in pipe:
        print '--------------space---------------------'
        print line
    

    for 循环已从中逐行读取输出 popen . 事实上如果你试图打电话 pipe.readline()

    为了说明异常,您可以尝试运行以下命令:

    import os
    pipe = os.popen('dir')
    for line in pipe:
        print '--------------space---------------------'
        print pipe.readline()
    
        2
  •  1
  •   Bob Ezuba    7 年前

    使用子流程模块,它具有许多与其他流程交互的有用功能。check\u输出或调用将完成此工作

    import subprocess
    output = subprocess.check_output('dir', universal_newlines=True)