2016-03-15 42 views
0

我看到了一些线程,但是这里的一切都没有帮助我。获得子流程中的命令输出

我运行一个子进程来运行通过Python在CMD命令(使用2.7)

p = subprocess.Popen(["start", "cmd", "/k", command], shell=True) 

此命令的作用和一切,但我不能设法捕获命令的输出。

我试过check_output或指定stdout=sp.PIPEstdout=file,但它没有工作。

任何建议将不胜感激。

感谢

回答

1

check_output应该很好地工作:

from subprocess import check_output 

out = check_output(["echo", "Test"], shell=True) 

命令的输出:

>>> print out 
Test 
+2

小心'壳= TRUE;虽然。这可能是一种安全风险(https://docs.python.org/2/library/subprocess.html#frequently-used-arguments)。 –

+0

sp.check_output([“ipconfig”],shell = True)和sp.Popen([“start”,“cmd”,“/ k”,“ipconfig”],shell = True )'? – Mumfordwiz

+0

从我可以看到选项1不打开cmd,但在python中执行它。选项2以cmd打开它。但他们运行相同的命令 – Mumfordwiz