作者:fghnh102_441 | 来源:互联网 | 2022-12-05 14:41
我尝试使用subprocess.run
此答案中描述的,但它不会返回stdout或stderr的任何内容:
>>> result = subprocess.run('echo foo', shell=True, check=True)
>>> print(result.stdout);
None
>>> print(result.stderr);
None
我也试过使用capture_output=True
但是我得到了一个例外__init__() got an unexpected keyword argument 'capture_output'
,即使它在文档中有描述.
1> sashoalm..:
我犯了一个错误,我没有补充stdout=subprocess.PIPE
:
result = subprocess.run('echo foo', shell=True, check=True, stdout=subprocess.PIPE);
现在它正在运作.
subprocess.run的capture_output关键字参数仅在python 3.7之后可用.您可能正在使用早期版本.无论如何,capture_output相当于将stdout和strerr都设置为subprocess.PIPE