【问题标题】:Convert binary string back to binary (python 3+)将二进制字符串转换回二进制(python 3+)
【发布时间】:2017-08-08 02:49:01
【问题描述】:

我有一个这样的字符串:

initial = b"data|22|b'or ac mattis blandit, elit mi ullamcorper tellus, id eleifend enim augue in ipsum.'|1358186458"

并像这样获取它的内容:

first, second, third, fourth = initial.decode().split('|')

third 变量是字符串 () 类型,但我想将其转换回二进制而不重新包装。

第三个变量内容为:

"b'or ac mattis blandit, elit mi ullamcorper tellus, id eleifend enim augue in ipsum.'"

请注意third 的类型仍然是字符串,但我希望它恢复为二进制!

【问题讨论】:

  • b' 在字符串中都没有任何特殊含义。 "b'or" 只是一个 4 个字符的字符串。如果您想将其转换为二进制文件,请.encode() it。

标签: python string python-3.x binary


【解决方案1】:

不要使用decodeing 然后encodeing,而是使用bytes 等效于.split,它需要一个字节字符串作为分隔符传递:

first, second, third, fourth = initial.split(b'|')

third 现在是:

>>> print(third)
b"b'or ac mattis blandit, elit mi ullamcorper tellus, id eleifend enim augue in ipsum.'"

如果您不需要二进制字符串中的b'',请将其删除:

>>> third[2:-1]
b'or ac mattis blandit, elit mi ullamcorper tellus, id eleifend enim augue in ipsum.'

【讨论】:

  • 谢谢,没想到.split(b'|')这么简单
  • bytes 支持(几乎所有)与strs 相同的操作,只需使用等效的bytes 参数,下次您需要对bytes 进行操作并需要@987654335 @因此,如果您想要bytes,则无需decode/encode
猜你喜欢
  • 2021-02-24
  • 1970-01-01
  • 1970-01-01
  • 2014-11-07
  • 2019-02-02
  • 2016-09-21
  • 1970-01-01
相关资源
最近更新 更多