如何从使用 python importlib 资源读取的位置读取位于同一模块中的资源文件?

问题描述 投票:0回答:0

我有一个类似于以下的文件夹结构。

.
├── data
│   ├── __init__.py
│   └── fish.csv
└── fish_service.py

我想从

fish_service.py
访问我的鱼列表,方法是从
data
使用类似
from .data import all_fish
的东西导入它们,其中
all_fish
是 csv 中的内容列表。

我发现我可以使用以下

importlib.resources
读取我的csv
__init__.py

不过我很反感需要回到父文件夹导入
import csv from importlib.resources import files from .. import data all_fish = [] with files(data).joinpath("fish.csv").open() as file: reader = csv.DictReader(file) for fish in item_reader: all_fish.append(fish)

,PyCharm好像也不喜欢

这个解决方案确实有效,但是有没有更好的方法从我当前所在的同一模块导入我的资源?

python python-import python-packaging python-importlib
© www.soinside.com 2019 - 2024. All rights reserved.