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.py 파일에 이름을 하드코딩하지 않고 /blah/blahblah원하는 디렉터리( /blah/blahblah이 경우)에 출력 파일을 생성하려면 어떻게 해야 합니까? 다시 말해서,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.

관련 정보