アーカイブのアイデア (ところで、あなたの質問に対する最良の回答です) があなたに合わない場合は、複数のファイルからのデータを 1 つのファイルに融合できます。たとえば、バイナリ データの連続ブロックを書き込むことによって (圧縮されていないアーカイブを作成します!)
パスを連結する必要があるファイルのリストにします。
import io
import os
offsets = [] # the offsets that should be kept for later file navigation
last_offset = 0
fout = io.FileIO(out_path, 'w')
for path in paths:
f = io.FileIO(path) # stream IO
fout.write(f.read())
f.close()
last_offset += os.path.getsize(path)
offsets.append(last_offset)
fout.close()
# Pseudo: write the offsets to separate file e.g. by pickling
# ...
# reading the data, given that offsets[] list is available
file_ID = 10 # e.g. you need to read 10th file
f = io.FileIO(path)
f.seek(offsets[file_ID - 1]) # seek to required position
read_size = offsets[filed_ID] - offsets[file_ID - 1] # get the file size
data = f.read(read_size) # here we are!
f.close()