在 Python 子进程中使用来自 zcat 的多个输入流时,意外标记"("附近出现语法错误



我在Python 3.5中运行了这个:

import subprocess
subprocess.run(
    'some_command --option <(zcat some_file_1.gz) <(zcat some_file_2.gz)', 
    shell=True
)

收到此错误:

/bin/sh: -c: line 0: syntax error near unexpected token `('

任何帮助将不胜感激!

使用

<(...) 的过程替换在 POSIX 中没有定义。 你应该使用像 bash 这样的东西。您可以传递executable="/bin/bash"以使用 bash 运行命令。

subprocess.run('cat <(echo hoo)', shell=True, executable="/bin/bash")

调用的默认 shell 是/bin/sh的,它不支持进程替换(<(...)语法),这是一个 Bash 功能。

相关内容

  • 没有找到相关文章

最新更新