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

Convert and save string to binary file in Python

我正在使用 PyOBEX 在我的计算机 (Windows 7) 和我的 phone (Android) 之间交换二进制文件(例如图像等)。但是,当我使用 get() 从我的 phone 获取文件时,它作为 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 是 header(通过 OBEX 发送的文件附带),b 是实际文件 object。 b 看起来像这样:https://drive.google.com/file/d/0By0ywTLTjb3LaFJaM2hWVEdBakE/view?usp=sharing

PyOBEX 文档或 Python 论坛对 get() 使用的编码只字未提。

你知道如何将这个字符串转换成可以与write()一起使用的二进制数据,然后以原始文件格式(即.jpg)保存吗?

在 python 2.7 中,字符串表示原始字节(这在 python 3 中发生了变化)

您只需要将数据保存到二进制类型的文件中:

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

这是 link 打开的 python 文档:

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

注意 "b" 代表二进制。

同样,这是假设 Python 2.7