Полагаю, вы сможете открыть файл, используя
import lzma
with lzma.open("myfile.7z", "r") as f:
df = pd.read_csv(f, ...)
Это, строго говоря, предназначено для формата файла xz
, но может работать и для 7z.Если нет, вам нужно будет использовать libarchive.
Для использования с Dask вы можете сделать выше для каждого файла с помощью dask.delayed
.dd.read_csv
напрямую также позволяет указать storage_options={'compression': 'xz'}
;однако быстрый доступ в к файлу, вероятно, в лучшем случае будет неэффективным, поэтому вы должны добавить blocksize=None
для принудительного создания одного раздела на файл:
df = dd.read_csv('myfiles.*.7z', storage_options={'compression': 'xz'},
blocksize=None)