我正在开发一个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)但它给了我一个错误,从执行程序,我认为这是我期望发生的。我看了又看过文件,查过了,但没有运气。
我肯定遗漏了一些显而易见的东西,因为我记得以前做过这件事(而且成功了)。如有任何建议,将不胜感激。
发布于 2013-08-01 18:10:17
你应该能够提交命令“原样”,如。
cmd = './test.sh > /tmp/ttt.log'
p = subprocess.Popen(cmd, shell = True)https://stackoverflow.com/questions/18000550
复制相似问题