Python - 二进制转义序列的字符串作为文字

标签 python string

我需要打印出一串二进制转义序列,例如\x05\x03\x87,与它们出现的完全一样。当我尝试打印它们时,Python 返回一串奇怪的非 ASCII 字符。如何将它们打印为字符串文字?

最佳答案

repr

>>> a='\x05\x03\x87'
>>> print a
?
>>> print repr(a)
'\x05\x03\x87'

编辑

Sven 指出 OP 可能希望将每个字符转储为十六进制,即使是可打印的字符,在这种情况下,我能想到的最佳解决方案是:

>>> print ''.join(map(lambda c:'\\x%02x'%c, map(ord, a)))
\x05\x03\x87

附加编辑

四年后,我突然想到这可能会更快且更具可读性:

>>> print ''.join(map(lambda c:'\\x%02x'% ord(c), a))

甚至

>>> print ''.join([ '\\x%02x'% ord(c) for c in a ])

关于Python - 二进制转义序列的字符串作为文字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13261109/

相关文章:

python - 将 Python DateTime 字符串转换为整数毫秒

string - SPSS 替换缺失值

Python的列表对象不允许索引值改变

python - 是否有一个对象比任何有效的 datetime.datetime(...) 都小?

JavaScript : String split() Method only push unique char

c# - 尝试在字符串中查找单个字符的更快方法是什么?

python - 如何在 python 中找到在另一个子字符串之后第一次出现的子字符串?

php - 如何将数组转换为逗号分隔的单词字符串?

python - 在 Pandas 中按时间顺序合并日期数据框

python - 为什么使用 Celery 而不是 RabbitMQ?