Popen多行阅读

时间:2017-08-25 13:02:55

标签: python popen

我是python的新手我一直在使用popen执行命令,但我期待多行响应,我需要分别使用每一行。

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

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

但知道我一直收到以下错误:

AttributeError:'file'对象没有属性'readLine'

有没有人对我有任何建议,或者想知道如何改善这一点。

感谢您的帮助

2 个答案:

答案 0 :(得分:1)

修复语法let manDog: ManDog; 使用小写l。

但是,我想知道你想要完成的事情。如果您只想打印每一行,那么您应该只更改readline - > print pipe.readline()

print line

您的import os pipe = os.popen('dir') for line in pipe: print '--------------space---------------------' print line 循环已经从for逐行读取输出。实际上,如果您尝试在迭代中调用popen,则它是非法的,您的代码将引发异常。

为了说明异常,你可以尝试运行它:

pipe.readline()

答案 1 :(得分:1)

使用子进程模块,它具有许多与其他进程交互的有用功能。 check_output或call将完成工作

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