【发布时间】:2012-04-03 16:38:30
【问题描述】:
我有这个测试代码,它只是将一个 XML 文件保存到一个文件夹中。我想安排一个 crontab 作业让它每分钟运行一次,但是当我使用 sudo 并输入我的密码时,我只能获得将 XML 保存到磁盘的权限。当我使用 crontab 安排它时,它会打印字符串但不保存文件。我怎样才能让它工作?
#!/usr/bin/python
import sys
import time
from socket import *
from xml.dom.minidom import Document
def main(args):
doc = Document()
with open("/Users/lucasp/Desktop/LogsXML" + time.strftime("%Y-%m-%d-%H.%M.%S", time.localtime()) + ".xml", "w") as f:
f.write("doc")
string = "File saved! : LogsXML/" + time.strftime("%Y-%m-%d-%H.%M.%S", time.localtime()) + ".xml"
print string
if __name__ == '__main__':
sys.exit (main (sys.argv))
【问题讨论】:
-
这不是代码问题,这是您系统的权限问题。此外,您可能想查看
os.path.join()- 路径上的字符串连接很脆弱。 -
你可以把它放在根 crontab 中。但是,既然文件夹在你的主目录中,你为什么需要 sudo 呢?您可能应该只更改该文件夹的权限以确保您的帐户具有写入权限(使用
chmod或通过 Finder)。 -
但是我应该给谁权限呢?