【问题标题】:Convert and save string to binary file in Python在 Python 中将字符串转换并保存为二进制文件
【发布时间】:2015-03-22 01:08:51
【问题描述】:

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

【问题讨论】:

    标签: python encoding bluetooth get obex


    【解决方案1】:

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

    您只需将数据保存到二进制文件:

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

    这里是打开的 python 文档的链接:

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

    注意“b”代表二进制。

    再次,这是假设 Python 2.7

    【讨论】:

      猜你喜欢
      • 2014-11-07
      • 1970-01-01
      • 1970-01-01
      • 2017-09-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-10
      相关资源
      最近更新 更多