python中如何表示非_如何用python将目标字符串用十六进制表示非转换

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

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

'abcd'

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

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>>> '\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']

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

print(binascii.b2a_hex(b'abcd'))

# b'61626364'

或者 py3.5 直接这样写print(b'abcd'.hex())

# 61626364

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

玩蛇网文章,转载请注明出处和文章网址:https://www.iplaypy.com/wenda/wd13952.html

相关文章 Recommend

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值