2013-02-15 103 views
3

我有一個Linux下的Python腳本,需要確定當前的工作目錄。程序執行此部分是:錯誤的路徑結果python程序運行使用crontab

import os 
cwd = os.getcwd() 
print cwd 

當我運行它,它給了我正確的答案:

/home/johny/LST/CT 

但是當我運行使用crontab的它,它給了我這樣的:

/home/johny 

即使我把它放在更深的文件夾中,也會產生相同的路徑。有人知道可能是什麼問題嗎?

回答

2

的cron可能只是將自己的主目錄。如果你需要你的腳本在特定目錄中運行考慮在你的腳本的頂部使用像

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

在crontab文件做:

1 0 * * * cd /home/johny/LST/CT; python your_script.py