[英]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.org
和scp me#comp:/~/blah.text ep#comp:/register/
来调用ssh
命令。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.