我喜欢在Linux系统上运行Python中的shell命令。具体来说,该命令运行所有的Bleachbit清洁器,在运行时非常正常。
然而,试图通过subprocess.call模块运行相同的命令总是会引发异常。
我只是不明白为什么它不应该工作。该命令不需要sudo权限,因此不要求不授予权限。
在执行python命令时,我还关闭了firefox/浏览器。
有人,有什么建议怎么解决这个问题吗?
我的代码:
try:
subprocess.call('bleachbit -c firefox.*')
except:
print "Error."发布于 2014-10-13 23:08:03
默认情况下, module不运行shell,因此shell通配符(全局模式)(如* )不会展开。您可以使用glob手动展开它:
#!/usr/bin/env python
import glob
import subprocess
pattern = 'firefox.*'
files = glob.glob(pattern) or [pattern]
subprocess.check_call(["bleachbit", "-c"] + files)如果命令更复杂,并且完全控制它的内容,那么可以使用shell=True在shell中运行它:
subprocess.check_call("bleachbit -c firefox.*", shell=True)发布于 2014-10-13 20:34:41
当shell为False时,需要传递一个args列表:
import subprocess
try:
subprocess.call(["bleachbit", "-c","firefox.*"])
except:
print ("Error.")https://stackoverflow.com/questions/26348261
复制相似问题