簡體   English   中英

Python-執行Shell命令在Linux上不起作用

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM