zoukankan      html  css  js  c++  java
  • 【Python】bytes和hex字符串之间的相互转换。

    反复在几个环境上折腾码流的拼装解析和可读化打印,总是遇到hex字符串和bytes之间的转换,记录在这里吧。

    1. 在Python2.7.x上(更老的环境真心折腾不起),hex字符串和bytes之间的转换是这样的:

    1 >>> a = 'aabbccddeeff'
    2 >>> a_bytes = a.decode('hex')
    3 >>> print(a_bytes)
    4 b'\xaa\xbb\xcc\xdd\xee\xff'
    5 >>> aa = a_bytes.encode('hex')
    6 >>> print(aa)
    7 aabbccddeeff
    8 >>>

    2. 在python 3环境上,因为string和bytes的实现发生了重大的变化,这个转换也不能再用encode/decode完成了。

    2.1 在python3.5之前,这个转换的其中一种方式是这样的:

    1 >>> a = 'aabbccddeeff'
    2 >>> a_bytes = bytes.fromhex(a)
    3 >>> print(a_bytes)
    4 b'\xaa\xbb\xcc\xdd\xee\xff'
    5 >>> aa = ''.join(['%02x' % b for b in a_bytes])
    6 >>> print(aa)
    7 aabbccddeeff
    8 >>>

    2.2 到了python 3.5之后,就可以像下面这么干了:

    1 >>> a = 'aabbccddeeff'
    2 >>> a_bytes = bytes.fromhex(a)
    3 >>> print(a_bytes)
    4 b'\xaa\xbb\xcc\xdd\xee\xff'
    5 >>> aa = a_bytes.hex()
    6 >>> print(aa)
    7 aabbccddeeff
    8 >>>
  • 相关阅读:
    设计模式-装饰模式(Decorator Pattern)
    死锁分析与解决
    事务原理与开发
    SQL注入与防范
    数据库连接池
    JDBC基础知识
    算法复习
    计算机网络基础知识
    Caused by: org.gradle.api.internal.plugins.PluginApplicationException: Faile
    手写算法
  • 原文地址:https://www.cnblogs.com/japhasiac/p/7739846.html
Copyright © 2011-2022 走看看