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*')))
その他
バイナリ対応してるか不明 https://docs.python.org/ja/3/library/fileinput.html
元のgithubとか見つけられなかったから保留 https://pypi.org/project/split-file-reader/