[英]Python - Executing shell command does not work on Linux
我喜歡在Linux Mint系統上從Python運行shell命令。 具體來說,該命令可運行所有Bleachbit清理程序,並且在手動運行時運行良好。
但是,嘗試通過subprocess.call模塊運行同一命令總是會引發異常。
我只是不明白為什么它不起作用。 該命令不需要sudo權限,因此不需要不需要的權限。
執行python命令時,我也關閉了firefox / browsers。
有人,對解決這個問題有什么建議嗎?
我的代碼:
try:
subprocess.call('bleachbit -c firefox.*')
except:
print "Error."
當shell為False時,您需要傳遞一個args列表:
import subprocess
try:
subprocess.call(["bleachbit", "-c","firefox.*"])
except:
print ("Error.")
subprocess
模塊默認情況下不會運行外殼程序,因此外殼程序通配符(globbing模式)(例如*
不會展開。 您可以使用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)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.