在Python中将字符串转换并保存为二进制文件

时间:2015-01-23 03:05:17

标签: python encoding bluetooth get obex

我正在使用PyOBEX在我的电脑(Windows 7)和手机(Android)之间交换二进制文件(例如图像等)。但是,当我使用get()从手机中获取文件时,它会以str的形式到达我的计算机。我尝试使用chardet模块找出用于解码它的编码并最终将其转换为二进制文件,但它返回Nonetype()说它是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)保存吗?

1 个答案:

答案 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