gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-04 10:48:57 26 4
gpt4 key购买 nike

我正在尝试使用以下代码捕获我在 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]

这将调用带有 2 个参数的 ssh 命令,me@cli.globusonline.orgscp me#comp:/~/blah.text ep #comp:/register/.

关于python - 捕获在 python 中运行的 bash 代码的输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31859515/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com