6
'효율적', 파일에 바로 사용하는 것 파일에 대한 BytesIO 객체를 작성하는 빠른 방법을 BytesIO 객체를 작성 그것을 하나의 덩어리에 쓰는 것에 반대하여, 나는 그것에 대해 어떻게 갈 것인가? Python 2.7.1을 사용하고 있습니다. 또한 BytesIO가 거대한 경우 반복으로 작성하는 것이 더 효율적인 방법입니까?그래서
감사
'효율적', 파일에 바로 사용하는 것 파일에 대한 BytesIO 객체를 작성하는 빠른 방법을 BytesIO 객체를 작성 그것을 하나의 덩어리에 쓰는 것에 반대하여, 나는 그것에 대해 어떻게 갈 것인가? Python 2.7.1을 사용하고 있습니다. 또한 BytesIO가 거대한 경우 반복으로 작성하는 것이 더 효율적인 방법입니까?그래서
감사
shutil
효율적으로 파일을 작성하는 유틸리티를 가지고있다. 청크로 복사되며 기본값은 16K입니다. 4K 덩어리의 여러 배는 좋은 크로스 플랫폼 번호 여야합니다. 디스크에 들어가기 전에 실제로 파일이 RAM의 OS 캐시에 기록되고 청크 크기가 그다지 크지 않기 때문에 131072를 임의로 선택했습니다.
import shutil
myBytesIOObj.seek(0)
with open('myfile.ext', 'wb') as f:
shutil.copyfileobj(myBytesIOObj, f, length=131072)
btw 끝에는 파일 객체를 닫을 필요가 없습니다. with 문이 실행되면 파일이 자동으로 닫힙니다.
굉장합니다. 정말 고마워. 이것은 완벽하게 작동합니다. 그리고 네, 파일 포인터를 닫지 않아도됩니다. 그러나 내 Bytes/String IO 포인터를 닫고 싶습니다. 실제로이를 버리고 가비지 수집기로 이동합니다. – Kalabaaz