2013-02-27 51 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