这是我的问题,我创建了一个包含一个类的包,这个是一个单词解析器,在这个包中我创建了一个包含单词列表的json。该文件名为fr.json
。
问题在于,当我使用命令from bin.Parser.parser import Parser
导入类并创建解析器对象时,它会将文件加载到我导入类的文件夹中,而不是加载到类所在的包中。
我可以使用" os.path"指定方向,但是,如果我想移动我的包并将其重新用于另一个项目,我有义务再次指定从哪里开始的链接" fr上传.json"位于。
class Parser:
def __init__(self, language):
self.language = language + ".json"
words_and_caracters = json.load(open('self.language'))
self.LIST_WORD = words_and_caracters["LIST_WORD"]
self.LIST_CARACTER = words_and_caracters["LIST_CARACTER"]
....
树形结构:
├── Parser
│ ├── fr.json
│ ├── __init__.py
│ ├── parser.py
├── test.py
导入测试:
from Parser.parser import Parser
parser = Parser('fr')
答案 0 :(得分:0)
尝试使用以下代码段。它生成包含程序包的目录的路径(动态),然后附加文件名。
import os
class Parser:
def __init__(self, language):
file_dir_path = os.path.dirname(os.path.abspath(__file__))
self.language = os.path.join(file_dir_path, "{}.json".format(language))
words_and_caracters = json.load(open('self.language'))
self.LIST_WORD = words_and_caracters["LIST_WORD"]
self.LIST_CARACTER = words_and_caracters["LIST_CARACTER"]