我在Python 3.5中试验subprocess.run。要链接两个命令在一起,我本来以为下面应该工作:Python子进程:链接命令与子进程.run
import subprocess
ps1 = subprocess.run(['ls'], universal_newlines=True, stdout=subprocess.PIPE)
ps2 = subprocess.run(['cowsay'], stdin=ps1.stdout)
然而,这种失败:
AttributeError: 'str' object has no attribute 'fileno'
ps2
期待一个类似文件的对象,但ps1
输出是一个简单的字符串。
有没有办法将命令与subprocess.run
一起链接?
感谢。我意识到了Popen语法,但是专门研究如何在Python 3.5+中通过'subprocess.run'链接命令。将'input'参数链接到'subprocess.run'确实是可能的。 –
@ChrisClark:你明白这个区别:'ls | cowsay'和'output = $(ls); cowsay <<<“$ output”'? – jfs