Python subprocess.check_输出显然未捕获输出
我正在运行一个简单的python脚本,如下所示:Python subprocess.check_输出显然未捕获输出,python,windows,Python,Windows,我正在运行一个简单的python脚本,如下所示: C:\workspace\MetaPackager\src\metapackager_tests\fake_project\src>c:\workspace\MetaPackager\Scripts\python.exe -c "print 'hello world'" hello world subprocess.check_output(["python", "-c", "print 'hello'"]) 当我试图从subproc
C:\workspace\MetaPackager\src\metapackager_tests\fake_project\src>c:\workspace\MetaPackager\Scripts\python.exe -c "print 'hello world'"
hello world
subprocess.check_output(["python", "-c", "print 'hello'"])
当我试图从subprocess.check\u poutput中运行完全相同的内容时,我什么也得不到:
C:\workspace\MetaPackager\src\metapackager_tests\fake_project\src>c:\workspace\MetaPackager\Scripts\python.exe
Python 2.7.6 (default, Nov 10 2013, 19:24:18) [MSC v.1500 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import subprocess
>>> import sys
>>> args = [sys.executable, '-c', '"print(\'hello world\')"']
>>> subprocess.check_output(args).strip()
''
这也会产生完全相同类型的故障:
subprocess.check_output(args, stderr=subprocess.STDOUT,).strip()
''
有人能看出哪里出了问题吗
这是Windows 7上的32位Python 2.7。我认为您必须这样编写:
C:\workspace\MetaPackager\src\metapackager_tests\fake_project\src>c:\workspace\MetaPackager\Scripts\python.exe -c "print 'hello world'"
hello world
subprocess.check_output(["python", "-c", "print 'hello'"])
下面是
子流程的详细信息。请检查输出引用过多,这会起作用:
subprocess.check_output([sys.executable, '-c', '__import__("sys").stdout.write(\'Hello\')'], stderr=subprocess.STDOUT)
试试看:args=[sys.executable'-c',“print(\'hello world\')]
或者干脆args=[sys.executable'-c',“print”('hello world')]
——这两种方法都适合我。