如何从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] 举报,一经查实,本站将立刻删除。