【发布时间】:2011-09-08 22:01:59
【问题描述】:
我正在尝试捕获此处的输出。如果在 python 提示符下,我运行
p = subprocess.Popen(["/path/to/search_by_hash.par", hash_str],
stdout=subprocess.PIPE)
返回值(列表)打印到标准输出,但未被捕获
[4460475, 4406612, 4379510]
我已经尝试过跟进
value = p.communicate()[0]
value
..but value 是一个空字符串,而不是我期望的整数列表,并且正在打印到标准输出
我尝试了Store output of subprocess.Popen call in a string 的解决方案,但无法捕获输出。
更新:
stderr 似乎也没有产生任何东西......我正在寻找的列表 正在打印出来......只是没有任何运气来捕捉它。见下文:
>>> p = subprocess.Popen(["/home/jfry/tools/search_by_hash.par", hash_str],
stdout=subprocess.PIPE)
>>>
[4460475, 4406612, 4379510]
value, err = p.communicate()
>>> value
''
>>> err
谢谢!
【问题讨论】:
-
试试
value = p.communicate()[0] -
您是要捕获发送到子进程标准输出的数据,还是要捕获子进程的退出状态?
-
Jakob - 谢谢,这是我的问题中的一个错字,但不是在提示符下。我已经改变了问题。
-
Adam - 我想要返回 value,在这种情况下是整数列表,例如[4460475、4406612、4379510]
-
添加
stderr=subprocess.PIPE,就像你已经拥有的标准输出一样
标签: python subprocess