如何将 importlib.resources 与 pickle 文件一起使用?

How do I use importlib.resources with pickle files?

我正在尝试使用 importlib.resources 加载 pickle 文件,但出现以下错误: UnicodeDecodeError: 'utf-8' codec can't decode byte 0x80 in position 0: invalid start byte

引发错误的位是:

with importlib.resources.open_text("directory_with_pickle_file", "pickle_file.pkl") as f:
   data = pickle.load(f)

我确定文件 (pickle_file.pkl) 是用 pickle.dump 创建的。 我做错了什么?

通过大量的试验和错误,我发现 importlib.resources 有一个 read_binary 函数可以用来读取 pickled 文件,如下所示:

text = importlib.resources.read_binary("directory_with_pickle_file", "pickle_file.pkl")
data = pickle.loads(text)

这里data是pickle对象