Python hexstring-list-str之间的转换方法

在Python操作数据内容时,多数情况下可能遇到下面3种类型的数据处理:

hexstring 如:'1C532145697A8B6F'

str 如:'\x1C\x53\x21\x45\x69\x7A\x8B\x6F'

list 如:[0x1C, 0x53, 0x21, 0x45, 0x69, 0x7A, 0x8B, 0x6F]

各种第三方模块(如pyDes),或者自己写的接口中,可能存在由于类型不统一需要在这3种数据中来回切换的情况。

需要用到的核心的方法如下:

list() 将对象转换为list

str() 将对象转换为str

bytearray() 将对象转换为bytearray

bytearray.fromhex() 将对象从hexstring转换为bytearray

binascii.b2a_hex() 将对象从str转换为hexstring

1. 整形列表转str

如:[0x53, 0x21, 0x6A] -> '\x53\x21\x6a'

方法:list -> bytearray -> str

x = [0x53, 0x21, 0x6A]
y = str(bytearray(x))

2. str转整形列表

如:'\x53\x21\6a' -> [0x53, 0x21, 0x6A]

方法:逐个字符转成十进制

x = '\x53\x21\x6a'
y = [ord(c) for c in x]

3. 整形列表转换为hex string

如: [0x53, 0x21, 0x6A] -> '53216A'

方法:list -> bytearray -> str -> hexstring

import binascii
x = [0x53, 0x21, 0x6A]
y = str(bytearray(x))
z = binascii.b2a_hex(y)

4. hex string转换为整形列表

如: '53216A' -> [0x53, 0x21, 0x6A]

方法:hexstring -> bytearray -> list

x = '53216A'
y = bytearray.fromhex(x)
z = list(y)

5. hex string转换为str

如: '53216A' -> '\x53\x21\x6A'

方法:hexstring -> bytearray -> str

x = '53216A'
y = bytearray.fromhex(x)
z = str(y)

以上这篇Python hexstring-list-str之间的转换方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • python3中bytes和string之间的互相转换

    前言 Python 3最重要的新特性大概要算是对文本和二进制数据作了更为清晰的区分.文本总是Unicode,由str类型表示,二进制数据则由bytes类型表示.Python 3不会以任意隐式的方式混用str和bytes,正是这使得两者的区分特别清晰.你不能拼接字符串和字节包,也无法在字节包里搜索字符串(反之亦然),也不能将字符串传入参数为字节包的函数(反之亦然). python3.0中怎么创建bytes型数据 bytes([1,2,3,4,5,6,7,8,9]) bytes("python&qu

  • 对Python3中bytes和HexStr之间的转换详解

    在Python操作数据内容时,多数情况下可能遇到下面3种类型的数据处理: hexstring 如:'1C532145697A8B6F' str 如:'\x1C\x53\x21\x45\x69\x7A\x8B\x6F' list 如:[0x1C, 0x53, 0x21, 0x45, 0x69, 0x7A, 0x8B, 0x6F] 各种第三方模块(如pyDes),或者自己写的接口中,可能存在由于类型不统一需要在这3种数据中来回切换的情况. 需要用到的核心的方法如下: list() 将对象转换为lis

  • python中从str中提取元素到list以及将list转换为str的方法

    在python中时常需要从字符串类型str中提取元素到一个数组list中,例如str是一个逗号隔开的姓名名单,需要将每个名字提取到一个元素为str型的list中. 如姓名列表str = 'Alice, Bob, John',需要将其提取为name_list = ['Alice', 'Bob', 'John']. 而反过来有时需要将一个list中的字符元素按照指定的分隔符拼接成一个完整的字符串.好在python中str类型本身自带了两种方法(method)提供了相应的功能. str转为list 使

  • python 处理string到hex脚本的方法

    实现目标:把文件1中数据如:B4A6C0ED69 处理后放入文件2:0XB4, 0XA6, 0XC0, 0XED, 0X69 V1.0代码如下(后续继续优化): #!/usr/bin/env python # -*- coding:utf-8 -*- from sys import argv script,first = argv buf = [] tmp = [] #读取待处理文件全部内容 并存到buf中 with open(first, 'r') as f: buf = f.read() f

  • python-str,list,set间的转换实例

    实例如下: a = '123abbcc!@#' b = ['1', '2', '3', 'a', 'b', 'c', '!', '@', '#'] c = set(['a', '!', 'c', 'b', '@', '#', '1', '3', '2']) str -> list:list(a) result : ['1', '2', '3', 'a', 'b','b', 'c','c','!', '@', '#'] list -> str : ''.join(list) result : 1

  • python3 字符串/列表/元组(str/list/tuple)相互转换方法及join()函数的使用

    在抓取网络数据的时候,有时会用正则对结构化的数据进行提取,比如 href="https://www.1234.com"等.python的re模块的findall()函数会返回一个所有匹配到的内容的列表,在将数据存入数据库时,列表数据类型是不被允许的,而是需要将其转换为元组形式.下面看下,str/list/tuple三者之间怎么相互转换. class forDatas: def __init__(self): pass def str_list_tuple(self): s = 'abc

  • Python hexstring-list-str之间的转换方法

    在Python操作数据内容时,多数情况下可能遇到下面3种类型的数据处理: hexstring 如:'1C532145697A8B6F' str 如:'\x1C\x53\x21\x45\x69\x7A\x8B\x6F' list 如:[0x1C, 0x53, 0x21, 0x45, 0x69, 0x7A, 0x8B, 0x6F] 各种第三方模块(如pyDes),或者自己写的接口中,可能存在由于类型不统一需要在这3种数据中来回切换的情况. 需要用到的核心的方法如下: list() 将对象转换为lis

  • python中ASCII码字符与int之间的转换方法

    ASCII码转换为int:ord('A') 65 int转为ASCII码:chr(65) 'A' 题目内容: 实现一个凯撒密码的变种算法,对输入字符串进行加解密处理 把字母a-z分别循环对应为相距13个位置的字母n-m,即 原文字母:a b c d e f g h i j k l m n o p q r s t u v w x y z 对应字母:n o p q r s t u v w x y z a b c d e f g h i j k l m 大写字母对应方式与小写字母类似,其他符号(含标点

  • c++中数字与字符串之间的转换方法(推荐)

    1.字符串数字之间的转换 (1)string --> char * string str("OK"); char * p = str.c_str(); (2)char * -->string char *p = "OK"; string str(p); (3)char * -->CString char *p ="OK"; CString m_Str(p); //或者 CString m_Str; m_Str.Format(&q

  • Python处理CSV与List的转换方法

    1.读取CSV文件到List def readCSV2List(filePath): try: file=open(filePath,'r',encoding="gbk")# 读取以utf-8 context = file.read() # 读取成str list_result=context.split("\n")# 以回车符\n分割成单独的行 #每一行的各个元素是以[,]分割的,因此可以 length=len(list_result) for i in rang

  • Python 生成 -1~1 之间的随机数矩阵方法

    1. 使用函数 np.random.random 由于 np.random.random() 默认生成 0~1 之间的小数,因此需要转换一下 如生成 3*3 的 -1~1 之间的随机数矩阵 -1 + 2*np.random.random((3,3)) # -*- coding:utf-8 -*- import matplotlib.pyplot as plt import pylab import cv2 import numpy as np img = plt.imread("1.png&qu

  • python实现提取str字符串/json中多级目录下的某个值

    字符串多级目录取值: 比如说: 你response接收到的数据是这样的. 你现在只需要取到itemstring 这个字段下的值.其他的都不要! 思路就是:字符串是个json格式(或转为json格式),然后str转为字典dict,然后循环遍历按照key来取值. 你的data是个字典 然后item_list是data的Key ,item_list是个数组,这个里面的数组中的每个元素都是一个字典. 因此就是dict多级路径按key取值. # 多级目录提取-dict print(type(respons

  • 基于Python共轭梯度法与最速下降法之间的对比

    在一般问题的优化中,最速下降法和共轭梯度法都是非常有用的经典方法,但最速下降法往往以"之"字形下降,速度较慢,不能很快的达到最优值,共轭梯度法则优于最速下降法,在前面的某个文章中,我们给出了牛顿法和最速下降法的比较,牛顿法需要初值点在最优点附近,条件较为苛刻. 算法来源:<数值最优化方法>高立,P111 我们选用了64维的二次函数来作为验证函数,具体参见上书111页. 采用的三种方法为: 共轭梯度方法(FR格式).共轭梯度法(PRP格式).最速下降法 # -*- codin

  • Python list和str互转的实现示例

    一.list转字符串 命令:''.join(list) 其中,引号中是字符之间的分割符,如",",";","\t"等等 如: list = [1, 2, 3, 4, 5] ''.join(list) 结果即为:12345 ','.join(list) 结果即为:1,2,3,4,5 二.字符串转list print list('12345') 输出: ['1', '2', '3', '4', '5'] print list(map(int, '12

  • C语言中字符串与各数值类型之间的转换方法

    C语言的算法设计中,经常会需要用到字符串,而由于c语言中字符串并不是一个默认类型,其标准库stdlib设计了很多函数方便我们处理字符串与其他数值类型之间的转换. 首先放上一段展示各函数使用的代码,大家也可以copy到自己的机器上运行观察 #include <stdio.h> #include <stdlib.h> int main(int argc, char *argv[]) { int num=183; char str[3]; //itoa函数将整型转换为字符串数值类型 it

  • python实现不同电脑之间视频传输功能

    1. imageZMQ库实现 imageZMQ库链接:https://github.com/jeffbass/imagezmq 该库原本是用于树莓派上的视频传输,其包含很多示例,有兴趣可以去看看. 上图中间的笔记本为发送端,其余两个屏幕显示的是接收端视频.本文视频传输实现的前提是确保发送端和接收端接在同一个局域网下. 发送端 import socket import time import cv2 import imagezmq import traceback import simplejpe

随机推荐