2016-08-08 3 views
1

파일의 첫 번째 바이트를 반전 사본으로 변경하는 가장 파이썬적인 방법은 무엇입니까?파일의 첫 번째 바이트 반전

with open(file_path, 'r+b') as f: 
    b = bytearray(f.read(1)) 
    b[0] = ~b[0] & 255 
    f.seek(0) 
    f.write(b) 
+1

을 그래서 당신은 혹시, 당신의 코드에 어떤 문제가 있습니까? – Kasramvd

+2

오직'~ b [0] & 255' 대신에'b [0]^0xff'을하는 것뿐입니다. – oldrinb

+0

@Kasramvd 외형은 귀찮은 것처럼 보입니다 만, –

답변

2

여기에 메모리 매핑 파일을 사용하는 대안이다 : 지금, 나는이 코드를 사용

import mmap 

with open(file_path, 'r+b') as f, mmap.mmap(f.fileno(), 1) as mm: 
    mm[0] ^= 255 
관련 문제