小编典典

使用代码存储库时如何引用资源的相对路径

all

我们正在使用部署到 Windows 和 Linux 的代码存储库 - 有时位于不同的目录中。项目内部的模块之一应该如何引用项目中的非 Python
资源之一(CSV 文件等)?

如果我们这样做:

thefile = open('test.csv')

或者:

thefile = open('../somedirectory/test.csv')

只有当脚本从一个特定目录或目录的子集运行时,它才会起作用。

我想做的是:

path = getBasePathOfProject() + '/somedirectory/test.csv'
thefile = open(path)

可能吗?


阅读 96

收藏
2022-06-27

共1个答案

小编典典

尝试使用相对于当前文件路径的文件名。’./my_file’ 的示例:

fn = os.path.join(os.path.dirname(__file__), 'my_file')

在 Python 3.4+
中,您还可以使用pathlib

fn = pathlib.Path(__file__).parent / 'my_file'
2022-06-27