현재 Python 2.7의 ZipFile을 사용하고 있습니다. 나는 여러 파일을 압축하여 사용자에게 보내는 메모리 문제에 직면 해있다.파일 압축시 Python 2.7의 ZipFile 동작
나는 코드가있을 때 : 어떤 시점에서
fp = open('myzip.zip', 'w')
archive = zipfile.ZipFile(fp, 'w', zipfile.ZIP_DEFLATED)
for filepath in filepaths:
archive.write(filepath)
archive.close()
합니까 파이썬로드 모든 파일을 메모리에를? 파이썬이 파일의 내용을 zip으로 스트리밍 할 것으로 예상 했었지만, 그렇다고 확신하지는 않습니다.
모듈이 8 * 1024 문자를 한 번에 메모리로 읽는 것처럼 보입니다. https://hg.python.org/cpython/file/2.7/Lib/zipfile.py#l1179 – Sush
'ZipFile.write()'doesn 많은 기억을 소비하지 않습니다. 언급 한 바와 같이 적당한 크기의 블록을 사용하며 사용되는대로 해제됩니다. 프로그램 자체가 커지거나 메모리 문제로 다른 것을 의미합니까? 운영 체제는 쓰기 작업을 캐시하므로 OS가 데이터를 커밋하기 시작할 때까지 빠릅니다. 그러면 일들이 조금 늪에 빠질 수도 있습니다. – tdelaney
흥미 롭군요, OK 빨간색 청어 일 수도 있습니다 –