pythonで分割されたxzを読み込む

pickleしてxzしたものをsplitコマンドで分割したファイルが複数ある。これをpickle.loadしたい

chatgpt

以下のpythonコードを書いて

- pickleしてxzしたものをsplitコマンドで分割したファイルが複数ある
- これをpickle.loadして

コード

import lzma
import pickle

# 分割されたファイルのリスト(適宜変更してください)
part_files = ['data.xz.partaa', 'data.xz.partab', 'data.xz.partac']

# 分割されたファイルを読み込んで結合する
combined_data = bytearray()
for part_file in part_files:
    with open(part_file, 'rb') as pf:
        combined_data.extend(pf.read())

# xz圧縮されたデータをメモリ上で解凍する
decompressed_data = lzma.decompress(combined_data)

# 解凍されたデータをpickleで読み込む
data = pickle.loads(decompressed_data)

整理

 #license : CC0

import lzma
import pickle
import glob

def pickle_load_splitted(part_files):
    combined_data = bytearray()
    for part_file in part_files:
        with open(part_file, 'rb') as pf:
            combined_data.extend(pf.read())
    decompressed_data = lzma.decompress(combined_data)
    return pickle.loads(decompressed_data)

data = pickle_load_splitted(sorted(glob.glob('path/to/splitted*')))


その他