Я получаю странную ошибку при запуске следующего кода:
import os
import urllib.request
import pandas as pd
data_url = 'URL FROM GOOGLE DRIVE DOWNLOAD'
file_name = 'mask.pkl'
data_dir = os.path.join('tempdata', 'test')
file_path = os.path.join(data_dir, file_name)
gdrive_file(file_path, data_url, data_dir)
x = pd.read_pickle(file_path)
mask = x[0]
Где data_url
- это ссылка для скачивания с Google Диска, но это просто файл .pkl, любой .pkl вы используйте для проверки это должно выдать ту же ошибку. Функция gdrive_file()
определяется следующим образом:
def gdrive_file(file_path, data_url, data_dir):
if file_path is True:
pass
if not os.path.isfile(file_path):
print('Fetching example data file')
os.makedirs(data_dir, exist_ok=True)
return urllib.request.urlretrieve(data_url, file_path)
Все прекрасно работает до того момента, когда я использую pandas для чтения файла .pkl. Я получаю следующую ошибку:
In [11]: pd.read_pickle(file_path)
#---------------------------------------------
UnpicklingError
Traceback (most recent call last)
<ipython-input-11-f996be11e8eb> in <module>
----> 1 pd.read_pickle(file_path)
~/anaconda3/envs/reborn/lib/python3.7/site-packages/pandas/io/pickle.py in read_pickle(filepath_or_buffer, compression)
180 # We want to silence any warnings about, e.g. moved modules.
181 warnings.simplefilter("ignore", Warning)
--> 182 return pickle.load(f)
183 except excs_to_catch:
184 # e.g.
UnpicklingError: invalid load key, '<'.
Я использовал этот же код для открытия других типов данных, у него просто проблема с открытием файла .pkl с использованием pd.read_pickle(file_path)
, и я не уверен, почему.
Любая помощь приветствуется, спасибо.