2015-01-13 2 views
0
file_1 = ('test.png') 
with open(file_1, 'rb') as b: 
    file_hex = b.read()  
binascii.hexlify(file_hex) 
file_1_size = len(file_hex) 
print (file_1_size) 

file_new = open("test.tp", "a") 
file_new.write(binascii.hexlify(file_hex)) 
file_new.close() 

나는 파일에이 육각형 화 된 내용을 추가하려고 노력했다. 심지어 자체적 인 변수에 육각형으로 된 내용을 적용하려고했습니다.파일에 육각형으로 된 내용 추가하기

with open("test.tp", "ab") as file_new: 
    file_new.write(x) 

또는 먼저 문자열로 바이트를 디코딩 : 다음과 같이

file_1 = ('test.png') 
with open(file_1, 'rb') as b: 
    file_hex = b.read()  
x = binascii.hexlify(file_hex) 
file_1_size = len(file_hex) 
print (file_1_size) 

file_new = open("test.tp", "a") 
file_new.write(x) 
file_new.close() 

오류

TypeError: must be str, not bytes 
+0

감사합니다. 나는 바보가되어 간단한 것을 잃어버린 것이라고 생각했습니다. –

답변

1

에 모두 끝 바이트를 추가 할 바이너리 모드로 파일을 엽니 다

with open("test.tp", "a") as file_new: 
    file_new.write(x.decode('ascii') 

16 진수는 ASCII 코 드 범위가 좁기 때문에 해당 코덱을 사용한 디코딩은 안전합니다.

+0

정보 주셔서 감사합니다^_^매우 도움이됩니다. –