2015-01-23 15 views
0

내 컴퓨터 (Windows 7)와 휴대 전화 (Android)간에 바이너리 파일 (예 : 이미지 등)을 교환하는 데 PyOBEX를 사용하고 있습니다. 그러나 get()을 사용하여 휴대 전화에서 파일을 가져 오는 경우 내 컴퓨터에 str으로 도착합니다. chardet 모듈을 사용하여 디코드에 사용할 인코딩을 확인하고 결국 이진 파일로 바꿨지 만 None을 반환했습니다. type()str이라고 말합니다. a는 헤더와 b (즉, OBEX를 통해 전송 파일과 함께 제공)입니다파이썬에서 문자열을 이진 파일로 변환하고 저장하십시오.

import bluetooth 
import BTDeviceFinder 
import PyOBEX.client 

name = "myDevice" 
address = BTDeviceFinder.find_by_name(name) 
port = BTDeviceFinder.find_port(address) 
client = PyOBEX.client.BrowserClient(address, port) 
client.connect() 
a, b = client.get("pic.jpg") 

실제 파일 객체입니다

코드는 다음과 같다. b은 다음과 같습니다. https://drive.google.com/file/d/0By0ywTLTjb3LaFJaM2hWVEdBakE/view?usp=sharing

PyOBEX 문서 또는 Python 포럼에서는 get()과 함께 사용되는 인코딩에 대해 언급하지 않습니다.

이 문자열을 write()과 함께 사용할 수있는 이진 데이터로 변환 한 다음 원래 파일 형식 (예 : .jpg)으로 저장하는 방법을 알고 계십니까? 여기

with open('file.jpg', 'wb') as handle: 
    handle.write(data_string) 

파이썬 문서에 대한 링크입니다 :

답변

1

파이썬에서 2.7 문자열은 원시 바이트 (이것은 파이썬의 변화 3)

이 당신은 단순히 바이너리 형식 파일에 데이터를 저장해야

대표 개방에 :

https://docs.python.org/2/library/functions.html#open

참고하면 "b"를 진 나타내는.

다시 말해서, 이것은 Python 2.7을 가정합니다.