子流程.通信()一次返回char而不是行

2024-09-27 04:19:14 发布

您现在位置:Python中文网/ 问答频道 /正文

我在Windows上运行Python2.7.2,并尝试使用以下子进程自动化许多命令行工具:

p = subprocess.Popen(mip4 + " status", bufsize=1, stdout=subprocess.PIPE, stderr=subprocess.PIPE, universal_newlines=True)
stdout, stderr = p.communicate()
for line in stdout:
    print line

print语句不是生成整行输出,而是打印一个字符后跟一个换行符。在

但是,如果我这样做:

^{pr2}$

完整输出正确打印。在

我试过所有的bufsize选项都没有用。在


Tags: 工具命令行进程windowsstatusstderrstdoutline
1条回答
网友
1楼 · 发布于 2024-09-27 04:19:14

如果您的目标是获得命令的output,那么应该使用check_output。在

In [120]: for x in subprocess.check_output(["/bin/sh", "-c", "ls -   a"]).split('\n'):
                print x
        .....:     
        .....:     
        .
        ..
        cluster.py
        database1.py

相关问题 更多 >

    热门问题