我在Linux下的python中有一个脚本,需要确定当前的工作目录。执行此操作的程序部分是:
import os
cwd = os.getcwd()
print cwd
当我运行程序时,它给了我正确的答案:
/home/johny/LST/CT
但是当我使用 crontab 运行它时,它给了我这个:
/home/johny
即使我将它放在更深的文件夹中,也会产生相同的路径。有谁知道可能是什么问题?
我在Linux下的python中有一个脚本,需要确定当前的工作目录。执行此操作的程序部分是:
import os
cwd = os.getcwd()
print cwd
当我运行程序时,它给了我正确的答案:
/home/johny/LST/CT
但是当我使用 crontab 运行它时,它给了我这个:
/home/johny
即使我将它放在更深的文件夹中,也会产生相同的路径。有谁知道可能是什么问题?
在您的 crontab 文件中执行以下操作:
1 0 * * * cd /home/johny/LST/CT; python your_script.py
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 ...