在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输入重定向?
答案 0 :(得分:1)
默认情况下,许多内容都使用/bin/sh
作为首选shell。 /bin/sh
通常不是bash。
您系统上的/bin/sh
很可能不支持进程替换。
说服subprocess.call
使用/bin/bash
代替shell,它应该有用。