Python子进程和shell输入重定向

时间:2014-09-18 11:21:05

标签: python shell python-3.x subprocess io-redirection

在unix命令行上,我可以这样做:

paste <(echo A) <(echo B)

然而,当我尝试这样做时:

import subprocess
subprocess.call('paste <(echo A) <(echo B)', shell = True)

我收到此错误:

/bin/sh: -c: line 0: syntax error near unexpected token `('
/bin/sh: -c: line 0: `paste <(echo A) <(echo B)'

是否无法使用子进程模块进行shell输入重定向?

1 个答案:

答案 0 :(得分:1)

默认情况下,许多内容都使用/bin/sh作为首选shell。 /bin/sh通常不是bash。

您系统上的/bin/sh很可能不支持进程替换。

说服subprocess.call使用/bin/bash代替shell,它应该有用。

相关问题