【问题标题】:How to convert from bytes to string?如何从字节转换为字符串?
【发布时间】:2021-02-26 04:15:12
【问题描述】:

我在 Python 中使用 OpenCV 库来检测人脸并计算围绕人脸形成的矩形 (X,Y) 的中心点,以控制连接到 arduino 的伺服系统。由于python使用unicode,所以我将它转换为字节,就像这样

data = "X{0:f}Y{1:f}".format(xx, yy)
bdata = b'data'
arduino.write(bdata)

我必须通过串行通信在 arduino 程序中接收这些字节,并且它正在接收。问题是我无法将其解码回字符串,因此程序可以读取我已经尝试并搜索了很多论坛,但我没有这方面的初学者,因为我有机械engg背景,所以完全是菜鸟。我什至不知道这是否可能。提前致谢!

【问题讨论】:

    标签: python c opencv arduino serial-communication


    【解决方案1】:
    bdata = b'data'
    

    这是创建一个四字节的字符串,以 ASCII 编码表示字符 d、a、t、a。你可能不是这个意思!

    您应该改为使用encode 函数将data 字符串编码为字节。这需要您考虑编码;可能 ASCII 适合这种情况,因为您没有任何“特殊”字符:

    bdata = data.encode('ascii')
    

    作为一般提示,在 Python 解释器中进行实验会很有用,例如:

    >>> xx = 4.3
    >>> yy = 7.1
    >>> data = "X{0:f}Y{1:f}".format(xx, yy)
    >>> bdata = b'data'
    >>> bdata
    b'data'
    >>> bdata = data.encode('ascii')
    >>> bdata
    b'X4.300000Y7.100000'
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-02-26
      • 2020-11-04
      • 2022-01-11
      • 2021-03-01
      相关资源
      最近更新 更多