从 cron 调用时,Python 脚本输出在错误的目录中

从 cron 调用时,Python 脚本输出在错误的目录中

该脚本/blah/script.py具有-rwxr-xr-x 1 root root权限和所有权。脚本是:

#!/usr/bin/python

with open('blahblah', 'w') as f:
    f.write('hello')

crontab -e,我尝试过:

0 * * * * /blah/script.py

它可以工作,但文件被创建为/root/blahblah而不是/blah/blahblah.如何在所需目录中制作输出文件(/blah/blahblah在本例中)中生成输出文件,而无需在 .py 文件中对其名称进行硬编码?换句话说,如何从 cron 调用 Python 脚本,并将脚本存储的目录作为工作目录

注意:这可以工作,但不是很好: 0 * * * * cd /home/blah && /usr/bin/python script.py

答案1

解决办法是在Python脚本中添加这个

import os, sys
os.chdir(sys.path[0]) 

正如答案中所解释的https://stackoverflow.com/q/1432924/1422096

相关内容