2012-09-10 3 views
0

바이너리 형식에서 실제로 1과 0의 문자열을 가져 오는 방법이 있습니까? 파일이 큰 경우1과 0의 문자열을 바이너리 형식으로 표시 Python

# read in image data 
fh = open('test.png','rb') 
data = fh.read() 
fh.close() 

# write binary to text file 
fh = open('test.txt','w') 
fh.write(data) 
fh.close 
fh.close() 
내가 1의에 해당 데이터 문자열을 설정하는 방법을

0의

답변

2

이렇게하면 문자열의 각 바이트가 8 진수로 변환되어 공백으로 구분됩니다. 구분 기호는 쉽게 변경할 수 있습니다.

data = " ".join(bin(ord(b))[2:].rjust(8, "0") for b in data) 
1

사용 with은 그래서 당신은 명시 적으로 FH에게

with open('test.txt','w') as fh: 
    fh.write("".join(bin(ord(x))[2:].zfill(8) for x in data) 

를 닫 위가없는 많은 메모리를 사용하는 대신 작은 덩어리로 data을 읽고 write() 번을 여러 번 호출해야합니다.

옆 :
fh.close은 파일을 닫는 방법에 대한 참조 일뿐입니다. 메서드를 호출하면 (즉 파일을 닫을 때) fh.close()

관련 문제