>> /bi-6ren">
gpt4 book ai didi

Python 子进程、子 shell 和重定向

转载 作者:太空狗 更新时间:2023-10-30 00:37:11 26 4
gpt4 key购买 nike

我想使用 subshel​​l 的魔力和 python 子进程模块的重定向,但它似乎不起作用,提示意外的标记是括号。例如命令

cat <(head tmp)

当传递给子进程时给出这个

>>> subprocess.Popen("cat <(head tmp)", shell=True)
<subprocess.Popen object at 0x2b9bfef30350>
>>> /bin/sh: -c: line 0: syntax error near unexpected token `('
/bin/sh: -c: line 0: `cat <(head tmp)'

最佳答案

<(head tmp)语法是 bash称为“进程替换”的功能。基本/便携/bin/sh不支持它。 (即使在 /bin/sh/bin/bash 是同一个程序的系统上也是如此;当以普通 /bin/sh 调用时它不允许此功能,因此您不会无意中依赖非可移植功能。)

>>> subprocess.Popen(["/bin/bash", "-c", "cat <(head tmp)"])
<subprocess.Popen object at 0x1004cca50>

关于Python 子进程、子 shell 和重定向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7407667/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com