【问题标题】:How to convert python str to bytearray如何将python str转换为bytearray
【发布时间】:2014-10-07 07:29:12
【问题描述】:

我正在使用 Python 2.7,我需要将 struct.pack() 函数的返回值(根据文档为 str)转换为 bytearray 对象。 bytearray() 内置函数接受字符串值,但文档说我还 必须 传递 encoding 参数以用于将字符串编码为字节。我不知道该编码应该是什么,因为 struct.pack() 返回值大概应该已经是字节值,它不是实际的文本字符串,所以没有编码。

那么如何将存储在 Python2 str 中的 bytes 对象转换为 bytearray 对象?

【问题讨论】:

    标签: python arrays python-2.7


    【解决方案1】:

    更新:文档已corrected;您在传入字符串时不需要使用 encoding 参数,该部分现在正确地告诉您只有 unicode 对象才需要。

    我的旧答案如下。


    文档有误;它是从 Python 3 大规模复制的,其中确实需要编码参数,因为必须先将 (unicode) 字符串编码为字节。

    在 Python 2 上,只需传入字符串,不指定编码:

    >>> bytearray('The quick brown fox jumps over the lazy dog')
    bytearray(b'The quick brown fox jumps over the lazy dog')
    

    并将文档中的 string 替换为 unicodestring

    我已提交新的issue in the Python tracker 以更正此问题。

    【讨论】:

    • 已修复。句子现在变为“如果是 unicode,您还必须提供编码(以及可选的错误)参数;bytearray() 然后使用 unicode.encode() 将 unicode 转换为字节。”
    • @TerryJanReedy:感谢您快速修复文档!
    • 当周五的新问题列表出来时,我会尝试做任何简单的文档修复,以免他们迷失方向并久坐。欢迎在跟踪消息中建议使用纯文本(未格式化)改写。
    猜你喜欢
    • 2010-10-28
    • 1970-01-01
    • 2015-04-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-28
    • 1970-01-01
    相关资源
    最近更新 更多