python字符串用十六进制表示
PHPz
PHPz 2017-04-18 10:21:31
[Python讨论组]

我想将输入的字符串用十六进制表示,首先声明,并不是转换成十六进制的字符串,而是像下面的反过程:

>>> '\x61\x62\x63\x64'
'abcd'

我尝试了python3中的encode('UTF-8')等方法,但是都没有找到怎样可以达到我的目的,Python中是否能够完成这个功能,如果可以,怎样才能达到我的目的,希望各位大神能够指教。

PHPz
PHPz

学习是最好的投资!

全部回复(3)
巴扎黑
>>> '\x61\x62\x63\x64' == 'abcd'
True

是没有办法打印出来'x61x62x63x64'的,如果只是想查看'a'对应的ascii数值,可以用ord()

>>> ord('a')
97
>>> chr(97)
'a'

不知道这样可不可以满足你的要求

>>> [hex(ord(x)) for x in 'abcd']
['0x61', '0x62', '0x63', '0x64']
阿神

python3

>>> print(''.join((r'\x%2x'%ord(c)for c in 'abcd')))
\x61\x62\x63\x64
>>> print(''.join((r'\x%2x'%c for c in bytes('abcd','l1'))))
\x61\x62\x63\x64
>>> print(''.join((r'\x%2x'%c for c in b'abcd')))
\x61\x62\x63\x64
高洛峰

binascii 库里好几个函数都可以做到

import binascii
print(binascii.b2a_hex(b'abcd'))
# b'61626364'

或者 py3.5 直接这样写

print(b'abcd'.hex())
# 61626364
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号