파이썬을 사용하여 일부 파일을 암호화하고 있지만 청크로 파일 청크를 읽는 데 문제가 있습니다.파일 청크를 청크로 읽을 때 파이썬이 모든 데이터를 반환하지 않음
마지막 청크의 모든 데이터를 반환하지 않는 경우가 있습니다.
파일 길이가 307200 바이트인데 문제가 없습니다. 길이가 279363 바이트 일 때 그렇습니다.
나는 (큰 각각 307,200 & 279,363 바이트)이 개 파일chunksize = 65536
w = open(filename + '.' + str(cs) + '.split', 'wb')
tdata = f.read(307200)
w.write(tdata)
w.close
infile.open(filename + '.' + str(cs) + '.split', 'rb')
while True:
chunk = infile.read(chunksize)
print "Chunk length: " + str(len(chunk))
if len(chunk) == 0:
break
elif len(chunk) % 16 != 0:
chunk += ' ' * (16 - len(chunk) % 16)
이상이 코드 조각을 실행 그리고 난이 있어요 : 당신이 볼 수 있듯이, 모든의 합을
File 1 (307200): Chunk length: 65536 Chunk length: 65536 Chunk length: 65536 Chunk length: 65536 Chunk length: 45056 Chunk length: 0 File 2 (279363): Chunk length: 65536 Chunk length: 65536 Chunk length: 65536 Chunk length: 65536 Chunk length: 16384 Chunk length: 0
을 첫 번째 파일의 청크 크기가 정확하면 두 번째 파일의 합이 NOT입니다. 왜 그런지 모르겠습니다.
내 파이썬 버전 (우분투 10.04.2 LTS에서 실행) 2.6.5
입니다
* 편집 : 내 자신의 바보 같은 잘못. 방금 쓴 파일을 읽기 전에 w.close()
대신 w.close
을 사용했는데 문제가 발생했습니다.
입력 파일 자체를 고려 했습니까? 어떤 종류의 내용, 인코딩 등 – krs1
+1 매우 흥미 롭습니다! – rubik
암호화 코드를 제거하면 작동합니까? 말하자면, 코드를 복사하는 것이 전부라면 코드가 작동합니까? – Nate