我每分钟从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
基于解决方案可以代替使用。