繁体   English   中英

捕获在python中运行的bash代码的输出

[英]Capture output of bash code run in python

我正在尝试使用以下代码捕获我在python脚本中执行的bash行的输出:

call_bash = subprocess.Popen(['/space/jazz/1/users/gwarner/test.sh'],stdout=subprocess.PIPE)
output = call_bash.communicate()[0]

这可以正常工作,但我想对其进行更改,以便将bash代码直接写入此python脚本中(消除了对单独的.sh文件的需要)。 我知道我可以使用subprocess.call()从python运行bash代码,但我不知道如何捕获输出(如果我使用了错误的术语,通常会打印到终端上)。 有人可以帮忙吗?

我在CentOS上运行python 2.7

subprocess.Popen的第一个参数是参数列表(除非您指定shell=True )。

所以你可以像

call_bash = subprocess.Popen(['ssh', 'me@cli.globusonline.org', 'scp me#comp:/~/blah.text ep#comp:/register/'], stdout=subprocess.PIPE)
output = call_bash.communicate()[0]

这将使用两个参数me@cli.globusonline.orgscp me#comp:/~/blah.text ep#comp:/register/来调用ssh命令。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM