首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Python subprocess.Popen()中处理Shell重定向

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

Stack Overflow用户
提问于 2013-08-01 17:19:53
回答 1查看 2.4K关注 0票数 3

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

代码语言:javascript
复制
cmd = 'convert_something.tcl some_file >! output_file'

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

代码语言:javascript
复制
args = cmd.split()
p = subprocess.Popen(args, shell=True)

然而,无论如何发挥与Popen的论点,我无法得到重定向的工作。我目前正在tcsh shell中工作,但我也尝试过bash。我尝试指定shell,如下所示:

代码语言:javascript
复制
p = subprocess.Popen(args, executable='/bin/bash', pre_exec=oc.setsid)

但它给了我一个错误,从执行程序,我认为这是我期望发生的。我看了又看过文件,查过了,但没有运气。

我肯定遗漏了一些显而易见的东西,因为我记得以前做过这件事(而且成功了)。如有任何建议,将不胜感激。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-08-01 18:10:17

你应该能够提交命令“原样”,如。

代码语言:javascript
复制
cmd = './test.sh > /tmp/ttt.log'
p = subprocess.Popen(cmd, shell = True)
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18000550

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档