하면 아카이브 아이디어 (BTW 질문에 대한 가장 좋은 대답이다) 예를 들어, 당신은 하나 개의 파일에 여러 파일의 데이터를 융합 할 수 있습니다, 당신이 적합하지 않습니다 이진 데이터의 연속 블록을 작성하여 (따라서 비 압축 아카이브를 생성하지 않습니다!)
하자 경로가 연결된해야하는 파일의 목록이 될 :
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()
내가 파일을 arcihve 사용할 그나마 더. – mehmet
@mehmet, confused - 당신이 원하는 것은 아카이브 파일과 어떻게 다릅니 까? – linuts
나는 각 항목에 직접 액세스하지 않고 앞의 것들을 건너 뛰지 않아도되므로 사운드 효과를 다룰 때 문제가되는 tar를 통해 zip을 사용합니다. –