gcm*_*ake 3 python redirect subprocess popen
我正在开发一个Python(2.7)模块,该模块将允许用户在本地运行命令或将作业提交到负载共享工具(例如LSF,但必须自行开发)。在这种情况下,我希望用户能够像这样提交他们的命令:
cmd = 'convert_something.tcl some_file >! output_file'
Run Code Online (Sandbox Code Playgroud)
这使得他们的脚本(Tcl,Perl,Python,C / C ++)的转换更加容易。(我预见会在将来进行更改,但是现在...)subprocess.Popen()命令如下所示:
args = cmd.split()
p = subprocess.Popen(args, shell=True)
Run Code Online (Sandbox Code Playgroud)
但是,无论如何使用Popen的参数,我都无法重定向到工作。我目前在tcsh shell中工作,但我也尝试过bash。我试过指定外壳,像这样:
p = subprocess.Popen(args, executable='/bin/bash', pre_exec=oc.setsid)
Run Code Online (Sandbox Code Playgroud)
但这给了我正在执行的程序一个错误,我认为这是我希望发生的。我已经阅读并重新阅读了文档并进行了搜索,但是没有运气。
我肯定缺少一些明显的东西,因为我记得以前做过(而且确实奏效)。任何建议,将不胜感激。
您应该能够“按原样”提交命令,例如。
cmd = './test.sh > /tmp/ttt.log'
p = subprocess.Popen(cmd, shell = True)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2194 次 |
| 最近记录: |