2013-05-05 2 views
3

큰 바이너리 파일이 있습니다. 파일의 시작 부분에 어떻게 쓸 수 있습니까?바이너리 파일에 데이터를 어떻게 추가합니까?

예는 : bytes_string_binary_file :

file = 'binary_file' 
string = 'bytes_string' 

나는 내용으로 새 파일을 얻을 것으로 예상.

구성 open("filename", ab)이 추가됩니다.

저는 파이썬 3.3.1을 사용하고 있습니다.

+0

@David 제 질문을 편집 해 주셔서 감사합니다. –

답변

8

파일 앞에 추가 할 방법이 없습니다. 당신은 완전히 파일을 다시 작성해야합니다 : 당신이 메모리에 전체 파일을 읽는 방지하려면

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 교체 귀하의 시스템. (매회 읽은 바이트 수).

+0

솔루션을 제공해 주셔서 감사합니다.하지만 운영 메모리가 제한되어 있습니다. 다른 해결책일까요? 아니면 불가능한가요? –

+1

@wikicms ['iter'] (http://docs.python.org/2/library/functions.html#iter) 함수를 사용하여 제한된 메모리 만 사용하는 솔루션을 추가했습니다. – Bakuriu

+0

OMG, 당신은 파이썬으로 마스터! 감사! –

관련 문제