微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在python脚本中执行bash命令

如何从python脚本启动带有多个args的bash命令(例如“sudo apt update”)?

解决方法:

@milne的答案有效,但是subprocess.call()给你的反馈很少.

我更喜欢使用subprocess.check_output(),因此您可以分析打印到stdout的内容

 import subprocess
 res = subprocess.check_output(["sudo", "apt", "update"])
 for line in res.splitlines():
     # process the output line by line

check_output在调用的命令的on-zero退出时抛出错误

请注意,如果没有为函数指定shell关键字参数,则不会调用bash或其他shell(对于subprocess.call()也是如此;如果没有必要,则不应该强制执行安全性危险),它直接调用命令.

如果您发现自己从Python执行了大量(不同的)命令调用,您可能需要查看plumbum.这样您可以使(IMO)更具可读性:

from plumbum.cmd import sudo, apt, echo, cut

res = sudo[apt["update"]]()
chain = echo["hello"] | cut["-c", "2-"]
chain()

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐