我每分钟从crontab运行python shell:
* * * * * /home/udi/foo/bar.py
/home/udi/foo有一些必要的子目录,例如/home/udi/foo/log和/home/udi/foo/config,它/home/udi/foo/bar.py指的是。
问题是crontab从另一个工作目录运行脚本,因此尝试打开./log/bar.log失败。
有没有办法告诉脚本将工作目录更改为脚本自己的目录?我想找到一种适用于任何脚本位置的解决方案,而不是明确告诉脚本位置。
编辑:
os.chdir(os.path.dirname(sys.argv[0]))
是最紧凑的优雅解决方案。感谢您的回答和解释!
crontab用例:既sys.argv[0]和__file__,如果脚本使用运行失败execfile();inspect基于解决方案可以代替使用。