2017-01-29 117 views
-2

我试图利用类似的问题得到下面的代码打印到终端在Python怪输出:充分利用POPEN

cmd = 'test' 
output = subprocess.Popen(cmd, stdout=subprocess.PIPE).communicate()[0] 
print(output) 

但是这样做给我的输出:

b'' 

如何修复我的代码以正确输出到终端?

+0

究竟什么是你的问题? – DyZ

+0

如何解决我的代码正确输出到终端?所有其他问题/解决方案似乎表明这是正确的方式。 – arcade16

+0

输出什么,你期待? –

回答

6

从手册页:

test - check file types and compare values 

一个程序来测试文件。并且当你在命令行上运行它时,它只是简单地打印任何东西(因为这个命令在提供给它的文件名上起作用;而且因为你没有传递任何参数,所以没什么可说的)

而且输出有告诉你(其中b'是指:字节的八位字节的空数组;参见here用于对详细信息)。

因此,这里真正的答案:你开始想知道,当你的Python中调用它的工具做什么之前...直接在shell中运行它。

+0

我在那里提供的链接......解释了这个b'部分。 – GhostCat

+3

所以你不知道你在做什么,并期望其他人向你解释?你的**自己的**代码正在使用子进程来启动一个*子进程*来运行**你传递给它的命令。该命令被命名为test。假设你使用的是Linux系统,我向你解释了“测试”的含义。 – GhostCat