我正在使用PyOBEX在我的电脑(Windows 7)和手机(Android)之间交换二进制文件(例如图像等)。但是,当我使用get()
从手机中获取文件时,它会以str
的形式到达我的计算机。我尝试使用chardet
模块找出用于解码它的编码并最终将其转换为二进制文件,但它返回None
。 type()
说它是str
。
代码如下:
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")
其中a
是标题(通过OBEX发送的文件附带),b
是实际的文件对象。 b
看起来像这样:https://drive.google.com/file/d/0By0ywTLTjb3LaFJaM2hWVEdBakE/view?usp=sharing
PyOBEX文档或Python论坛没有说明get()
使用的编码。
您知道如何将此字符串转换为可与write()
一起使用的二进制数据,然后以原始文件格式(即.jpg)保存吗?
答案 0 :(得分:1)
在python 2.7中,字符串表示原始字节(在python 3中更改)
您只需将数据保存为二进制类型文件:
with open('file.jpg', 'wb') as handle:
handle.write(data_string)
以下是打开时python doc的链接:
https://docs.python.org/2/library/functions.html#open
请注意" b"代表二进制。
同样,这是假设Python 2.7