큰 바이너리 파일이 있습니다. 파일의 시작 부분에 어떻게 쓸 수 있습니까?바이너리 파일에 데이터를 어떻게 추가합니까?
예는 : bytes_string_binary_file
:
file = 'binary_file'
string = 'bytes_string'
나는 내용으로 새 파일을 얻을 것으로 예상.
구성 open("filename", ab)
이 추가됩니다.
저는 파이썬 3.3.1을 사용하고 있습니다.
큰 바이너리 파일이 있습니다. 파일의 시작 부분에 어떻게 쓸 수 있습니까?바이너리 파일에 데이터를 어떻게 추가합니까?
예는 : bytes_string_binary_file
:
file = 'binary_file'
string = 'bytes_string'
나는 내용으로 새 파일을 얻을 것으로 예상.
구성 open("filename", ab)
이 추가됩니다.
저는 파이썬 3.3.1을 사용하고 있습니다.
파일 앞에 추가 할 방법이 없습니다. 당신은 완전히 파일을 다시 작성해야합니다 : 당신이 메모리에 전체 파일을 읽는 방지하려면
with open("oldfile", "rb") as old, open("newfile", "wb") as new:
new.write(string)
new.write(old.read())
을 단순히 덩어리로 읽을 :
with open("oldfile", "rb") as old, open("newfile", "wb") as new:
for chunk in iter(lambda: old.read(1024), b""):
new.write(chunk)
가 가장 잘 작동 값으로 1024
교체 귀하의 시스템. (매회 읽은 바이트 수).
솔루션을 제공해 주셔서 감사합니다.하지만 운영 메모리가 제한되어 있습니다. 다른 해결책일까요? 아니면 불가능한가요? –
@wikicms ['iter'] (http://docs.python.org/2/library/functions.html#iter) 함수를 사용하여 제한된 메모리 만 사용하는 솔루션을 추가했습니다. – Bakuriu
OMG, 당신은 파이썬으로 마스터! 감사! –
@David 제 질문을 편집 해 주셔서 감사합니다. –