我正在使用os.system向系统提交命令.
也就是说,
import os
os.system(my_cmd)
Run Code Online (Sandbox Code Playgroud)
但我想知道如何获得输出,即,让我们说我在bash中并输入我的cmd,我会得到这种形式的输出:
Job <57960787> is submitted to queue <queueq>.
Run Code Online (Sandbox Code Playgroud)
我怎样才能在python中使用os.system(cmd),获取文本输出,并解析它以获取作业ID,57960787.
谢谢!
最好在这里使用subprocess模块文档,例如:
import subprocess,re
p = subprocess.Popen('commands',stdout=subprocess.PIPE,stderr=subprocess.PIPE)
results, errors = p.communicate()
print results
re.search('<(\d+)>', results).group(1) #Cheers, Jon Clements
Run Code Online (Sandbox Code Playgroud)
或者你甚至可以在这里使用os.popen文档,
p_os = os.popen("commands","r")
line = p_os.readline()
print line
re.search('<(\d+)>', line).group(1) #Cheers, Jon Clements
Run Code Online (Sandbox Code Playgroud)
或者正如John Clements所建议的那样,您可以在此处使用subprocess.check_output文档
>>> subprocess.check_output(["echo", "Hello World!"])
'Hello World!\n'
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
996 次 |
| 最近记录: |