0

我正在使用 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)保存吗?

4

1 回答 1

2

在 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

于 2015-01-23T03:13:24.567 回答