gpt4 book ai didi

python - 在 Python subprocess.Popen() 中处理 Shell 重定向

转载 作者:太空宇宙 更新时间:2023-11-03 14:27:24 28 4
gpt4 key购买 nike

我正在开发一个 Python (2.7) 模块,该模块将允许用户在本地运行他们的命令或将作业提交到负载共享设施(如 LSF,但是是本土开发的)。在这种情况下,我希望用户能够像这样提交他们的命令:

cmd = 'convert_something.tcl some_file >! output_file'

这使得他们的脚本(Tcl、Perl、Python、C/C++)的转换更加容易。 (我预见到将来会改变它,但现在……)subprocess.Popen() 命令如下所示:

args = cmd.split()
p = subprocess.Popen(args, shell=True)

但是,无论如何使用 Popen 的参数,我都无法使重定向工作。我目前在 tcsh shell 中工作,但我也尝试过 bash。我试过指定 shell,如下所示:

p = subprocess.Popen(args, executable='/bin/bash', pre_exec=oc.setsid)

但它给了我一个执行程序的错误,我认为我希望发生这种情况。我已经阅读并重新阅读了文档并进行了搜索,但没有成功。

我一定遗漏了一些明显的东西,因为我记得以前做过这个(而且它奏效了)。如有任何建议,我们将不胜感激。

最佳答案

您应该能够“按原样”提交命令,例如。

cmd = './test.sh > /tmp/ttt.log'
p = subprocess.Popen(cmd, shell = True)

关于python - 在 Python subprocess.Popen() 中处理 Shell 重定向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18000550/

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