2013-02-15 1 views
3

Linux에서 Python으로 현재 작업 디렉토리를 결정해야하는 스크립트가 있습니다. 이 작업을 수행 프로그램의 일부이다 : 나는이 프로그램을 실행하면 그것이 나에게 정답 제공잘못된 경로 결과 crontab을 사용하여 python 프로그램이 실행됩니다.

import os 
cwd = os.getcwd() 
print cwd 

:

/home/johny/LST/CT 

을 나는 그것이의 crontab을 사용하여 실행할 때, 그것은 나에게이 있습니다 :

/home/johny 

더 깊은 폴더에 넣어도 같은 경로가 나타납니다. 누가 문제가 될 수 있는지 아는 사람 있습니까? 당신의 crontab 파일에서

답변

2

크론은 아마 당신의 홈 디렉토리에 자신을 설정합니다. 특정 디렉토리에 실행 스크립트를해야하는 경우가에서 실행 어디 정말 스크립트 상관 안하지만 스크립트의 상단에

import os 
os.chdir(os.path.dirname(os.path.abspath(__file__))) 

같은 것을 사용하는 것이 좋습니다. 스크립트의 모든 파일 경로는 다음과 같이 스크립트를 기준으로합니다.

scriptdir = os.path.dirname(os.path.abspath(__file__)) 

mypath = os.path.join(scriptdir, 'data', 'mfile.dat') 

... etc ... 
3

는 수행

1 0 * * * cd /home/johny/LST/CT; python your_script.py 
관련 문제