【发布时间】:2019-02-16 19:37:46
【问题描述】:
使用 ubuntu 16.04 我想要的是使用 python 检索终端上的输出,我确实参考了这两个链接: How can I get terminal output in python?
Running shell command from Python and capturing the output
但作为 python 的初学者,我无法让它工作,我想要输出的原始代码:
for element in my_images:
os.system('you-get -o videos ' + element)
我的代码是如何变成的:
for element in my_images:
# value = os.system('you-get -o videos ' + element)
output = subprocess.Popen(os.system('you-get -o videos ' + element), stdout=subprocess.PIPE).communicate()[0]
print(output)
但它没有工作我得到这个错误
Traceback (most recent call last):
File "main_twitter.py", line 29, in <module>
output = subprocess.Popen(os.system('you-get -o videos ' + element), stdout=subprocess.PIPE).communicate()[0]
File "/usr/local/lib/python3.6/subprocess.py", line 709, in __init__
restore_signals, start_new_session)
File "/usr/local/lib/python3.6/subprocess.py", line 1220, in _execute_child
args = list(args)
TypeError: 'int' object is not iterable
【问题讨论】:
-
当你使用
subprocess时,你不应该使用os.system命令,它返回一个整数。您应该按原样运行命令。
标签: python python-3.x shell subprocess