错误的路径导致python程序使用crontab运行

时间:2013-02-15 00:47:46

标签: python linux python-2.7 cron crontab

我在Linux下的python中有一个脚本需要确定当前的工作目录。执行此操作的程序部分是:

import os
cwd = os.getcwd()
print cwd

当我运行该程序时,它给了我正确的答案:

/home/johny/LST/CT

但是当我使用crontab运行它时,它给了我这个:

/home/johny

即使我把它放在更深的文件夹中,也会产生相同的路径。有人知道会出现什么问题吗?

2 个答案:

答案 0 :(得分:3)

在crontab文件中执行:

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

答案 1 :(得分: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 ...