python - cron 作业执行的脚本中的相对路径

标签 python cron crontab

我正在设置我的第一个 cron 作业,但它不工作。我认为问题可能是相对路径问题。

给定的 cron 作业:

*/1 * * * * python2.7 /home/path/to/my/script/my_script.py

和 my_script.py:

import sqlite3
db = sqlite3.connect('my_db.db')
cur = db.cursor()
...

如何确保 my_script.py/home/path/to/my/script/ 中查找 my_db.db (与 my_script.py 所在的目录相同)而不是 crontab 所在的目录?

也欢迎提供其他故障排除建议。

注意 - 我认为问题可能是路径问题,因为当我尝试使用 python2.7/home/path/to/my/script/my_script.py 运行 my_script.py /home/path/to/my/script/ 以外的任何位置,我收到“无法打开数据库”错误。

最佳答案

import sqlite3
import os

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

db = sqlite3.connect(os.path.join(dir_path, 'my_db.db'))
cur = db.cursor()
...

记住 Python 的 os.path module是您操纵路径时最好的 friend 。

关于python - cron 作业执行的脚本中的相对路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10422377/

相关文章:

linux - CET fatal error : role "root" does not exist in postgresql-9. 3-main.log postgreSQL

python - 更改基于另一列 pandas 的列的值

python - Numpy:以最少的操作 reshape 此数组

Azure webjob在同一项目中以不同的频率运行多个webjob

c# - 如何执行真正耗时的方法? asp.net(定时)

r - 推特 API 速率限制

mysqldump 在 crontab 中不起作用

python - Cookie 未在 starlette TestClient 上设置,请求通过 Python 请求发送

python - 如何在特定范围内规范化 csv 文件中的数据

node.js - 如何使用 node-schedule 仅在一个实例上运行 cron?