在 Python 中将字符串转换并保存为二进制文件
Convert and save string to binary file in Python
我正在使用 PyOBEX 在我的计算机 (Windows 7) 和我的 phone (Android) 之间交换二进制文件(例如图像等)。但是,当我使用 get()
从我的 phone 获取文件时,它作为 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
是 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
我正在使用 PyOBEX 在我的计算机 (Windows 7) 和我的 phone (Android) 之间交换二进制文件(例如图像等)。但是,当我使用 get()
从我的 phone 获取文件时,它作为 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
是 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