为不同用途指定文件路径的最佳方式,而不必为每个用途编写自定义路径



我有一个文件(dataset.json(,需要从不同的地方访问(tests.py、相对导入和实际使用(。我目前有一个类似的文件结构:

project_dir
|
+ - module_1
|
+ - __init__.py
+ - abcd.py
+ - dataset.json
+ - xyz.py
+ - tests
|
+ - tests_abcd.py

我试图解决的问题是能够从abcd.py读取dataset.json。当我从xyz.pytests_abcd.py导入abcd.py时,我会得到一个FileNotFoundError,因为路径不同。

我已经从这篇文章中介绍了阅读该文件的不同方法,但它并不一定能解决我的问题。我也研究了这篇文章。这个SO的帖子很有帮助,但并没有完全解决问题。

定义文件路径的最佳方式是什么?我不想为每个用例编写50种不同的访问该文件的方法,我想了解处理此类问题的最佳方法是什么。

内部abcd.py:

from pathlib import Path
import json

def read_data():
with open(Path(__file__).parent / 'dataset.json') as f:
return json.load(f)

来自xyz.py:

from module_1.abcd import read_data
my_data = read_data()

或者类似的东西,当然你不必返回数据,你可以在abcd.py中使用它。

__file__是评估它的脚本的本地,因此xyz.py有自己的路径,您可以通过在文件名前面加上相同的父路径来打开它旁边的.json。

相关内容

最新更新