linux crontab相对路径的问题?

Eternity
  • 96

我用crontab执行python脚本,python脚本要读取一个go脚本,都是相对路径,有没有不修改路径的方式,可以完成调用呢

回复
阅读 2.6k
2 个回答

如果 go 文件和 python 文件的相对路径是固定,可以在脚本通过相对的绝对路径读取。什么意思呢?

一个简单的示例:

import os
path = os.path.join(os.path.dirname(__file__), "../../gosrc/main.go")
print(path)

通过 os.path.dirname(__file__) 获取当前文件路径,然后通过 ../../gosrc/ 相对路径找到 main.go。这才是比较通用的方式。

比如,我这里的代码文件在 /Users/polo/Public/Work/document/draft/ 目录下,执行命令如下:

$ python Public/Work/document/draft/path.py

输出打印结果如下:

Public/Work/document/draft/../../gosrc/main.go

从当前路径的找到文件路径 Public/Work/document/draft/,再从源码路径找到 ../../gosrc/main.go 路径。

我有时会用:

cd /path/to/my/script && python script.py

保证在 /path/to/my/script 下脚本里路径正常就可以了。

宣传栏