【发布时间】:2014-12-08 12:08:59
【问题描述】:
我喜欢在我的 Linux Mint 系统上从 Python 运行 shell 命令。 具体来说,该命令运行所有 Bleachbit 清洁剂并完美运行 运行时很好。
然而,试图通过 subprocess.call 模块运行相同的命令 总是导致引发异常。
我只是不明白为什么它不应该工作。 该命令不需要 sudo 权限,因此不需要 没有被赋予的权利。
在执行 python 命令时,我还关闭了 firefox/浏览器。
任何人,任何建议如何解决这个问题?
我的代码:
try:
subprocess.call('bleachbit -c firefox.*')
except:
print "Error."
【问题讨论】:
-
您的系统上没有名为
firefox.*的文件。手动运行时,您的 shell 会处理通配符扩展,但 subprocess.call 默认情况下不使用 shell,而是使用一组字符串而不是一个以空格分隔的字符串。 -
subprocess.call接受一个根据the docs 的数组,并且可以有一个shell=True参数。 (不是 Python 专家,所以评论,不回答) -
不要使用裸露的
expect:,它可能会捕获太多,例如KeyboardInterrupt
标签: python linux shell subprocess