2013-02-27 50 views
0

我使用Python和努力如下如何從一個Python文件

code.py執行系統命令執行系統命令

import commands 
import os 

os.system('updatedb') 

結果:

sh-4.2$ python code.py 
updatedb: can not open a temporary file for `/var/lib/mlocate/mlocate.db' 

那麼如何從python模塊執行上述所有系統命令?

+0

錯誤表示您無權運行** updatedb **命令。 – Tuxdude 2013-02-27 07:00:26

+1

這與它從Python調用的事實無關。你有沒有嘗試在命令行中運行'updatedb'?你幾乎肯定會得到同樣的錯誤。 – 2013-02-27 07:00:26

+0

你確定這不僅僅是一個權限問題嗎? – 2013-02-27 07:00:33

回答

3

這幾乎肯定只是一個權限問題。 如果您可以信任腳本以root用戶身份運行:

$ sudo python code.py 
+0

僅僅因爲我通常在linux服務器上運行它來更新數據庫並在cron作業的幫助下執行一些額外的操作。所以在服務器上也使用cron作業,不可能提供密碼來運行腳本 – Fedrik 2013-02-27 07:18:59

+0

@Fedrik:在這種情況下,聽起來像問題是讓該cron作業以root身份運行。 – 2013-02-27 20:40:07