Python重定向LSF命令的输出

2024-04-20 02:30:51 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图使用子进程在python代码中运行LSF命令“bjobs”,但无法将输出转换为变量

我已经尝试和失败的方法如下:

proc = subprocess.Popen(['bjobs'],stdout=subprocess.PIPE)
print proc.stdout.read() ## Not working

stdout,stderr = subprocess.Popen(['bjobs'],stdout=subprocess.PIPE).communicate()

print stdout # prints empty line

我不想把它重定向到物理文件。在

所以请帮助我找到一种直接将它们捕捉到变量的方法


Tags: 方法代码命令read进程stdoutnotproc
1条回答
网友
1楼 · 发布于 2024-04-20 02:30:51

正如上面的一条评论所指出的,“找不到未完成的作业”消息将打印到stderr:

[~]$ bjobs > /dev/null
No unfinished job found
[~]$ bjobs >& /dev/null
[~]$

如果您想要所有bjobs输出,则应将子进程stderr重定向到stdout:

^{pr2}$

相关问题 更多 >