- ubuntu12.04环境下使用kvm ioctl接口实现最简单的虚拟机
- Ubuntu 通过无线网络安装Ubuntu Server启动系统后连接无线网络的方法
- 在Ubuntu上搭建网桥的方法
- ubuntu 虚拟机上网方式及相关配置详解
CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.
这篇CFSDN的博客文章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 。
1
2
|
x
=
[
0x53
,
0x21
,
0x6a
]
y
=
str
(bytearray(x))
|
2. str转整形列表 。
如:'\x53\x21\6a' -> [0x53, 0x21, 0x6a] 。
方法:逐个字符转成十进制 。
1
2
|
x
=
'\x53\x21\x6a'
y
=
[
ord
(c)
for
c
in
x]
|
3. 整形列表转换为hex string 。
如: [0x53, 0x21, 0x6a] -> '53216a' 。
方法:list -> bytearray -> str -> hexstring 。
1
2
3
4
|
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 。
1
2
3
|
x
=
'53216a'
y
=
bytearray.fromhex(x)
z
=
list
(y)
|
5. hex string转换为str 。
如: '53216a' -> '\x53\x21\x6a' 。
方法:hexstring -> bytearray -> str 。
1
2
3
|
x
=
'53216a'
y
=
bytearray.fromhex(x)
z
=
str
(y)
|
以上这篇python hexstring-list-str之间的转换方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我.
原文链接:https://blog.csdn.net/diaoxuesong/article/details/72123415 。
最后此篇关于Python hexstring-list-str之间的转换方法的文章就讲到这里了,如果你想了解更多关于Python hexstring-list-str之间的转换方法的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
你信吗?我有一个这样的循环(请原谅任何错误,我不得不大量编辑大量信息和变量名称,相信我它有效)。 ...旧示例已删除,请参见下面的代码... 如果我将那些中间的 str = "Blah\(odat.c
我正在做一个本地测试来比较 C# 中 String 和 StringBuilder 的 Replace 操作性能,但是对于 String 我使用了以下代码: String str = "String
我想知道为什么str += "A"和 str = str + "A"有不同的表现。 在实践中, string str = "cool" for(int i = 0; i approximately
我有一个类型列表 [("['106.52.116.101']", 1), ("['45.136.108.85']", 1)] 并想将其转换为 [('106.52.116.101', 1), ('45.
我有一个类型列表 [("['106.52.116.101']", 1), ("['45.136.108.85']", 1)] 并想将其转换为 [('106.52.116.101', 1), ('45.
我正在遍历 HashMap并通过一些本地变量中的模式匹配将值放入其中。 委托(delegate)者 fn lyrics_no_bottles(song_template:&mut String){
如果字符串(短语)中只有元音,它(对我而言)说True;否则说 False。我不明白为什么它总是返回 False,因为 (x >= x) 总是返回 True。我感谢任何人检查此查询的解决方案。 (st
我有代码以某种方式转换字符串引用,例如取第一个字母 trait Tr { fn trim_indent(self) -> Self; } impl Tr for &'a str { f
我正在学习指针,这是我的代码。我定义了一个指向 char(实际上是字符串)的指针 *str 和一个指向 int *a 的指针,它们的定义方式相同。我认为 str 和 a 都应该是一个地址,但是当我试图
为什么我会收到错误消息?我已经正确添加了类型,对吗? Invalid index type "str" for "Union[str, Dict[str, str]]"; expected type
你知道下面两个函数是否等价吗? function validate(str) { return ( ['null','','undefined'].indexOf(str) [v, valida
我正在解决这里的 Dataquest 问题:https://app.dataquest.io/m/293/data-cleaning-basics/5/removing-non-digit-chara
我有一个字符串列表,如下所示: ["A TB", "A-R TB", "B TB", "B-R TB", "C TB", "C-R TB"...] 但字符串的顺序是随机的。我如何编写一个将元素配对的函
我正在尝试将此函数从使用 split 改为使用 str.extract (正则表达式)。 def bull_lev(x): spl = x.rsplit(None, 2)[-2].strip(
给定这样的数据结构: [{'a':1, 'b': 2}, {'c':3 }, {'a':4, 'c':9}, {'d':0}, {'d': 0, 'b':6}] 目标是解析数据以产生: {'a': 2
给定这样的数据结构: [{'a':1, 'b': 2}, {'c':3 }, {'a':4, 'c':9}, {'d':0}, {'d': 0, 'b':6}] 目标是解析数据以产生: {'a': 2
s = 'someString' s = QTreeWidgetItem(s) print(s.text(0)) # 0 being 'column' 输出: 's' 如果我对另一
黑白有什么区别: function(char* str ) function(char* str[] ) function(char str[] ) 它们是如何被调用的(通过什么类型的string/c
我试过谷歌搜索但找不到准确的答案,所以请允许我尝试在这里提问。如果问题看起来不合适,请告诉我,我会删除它。 在 JS 中,您可以通过三种不同的方式编写特定的内置功能: 字符串长度 str.toStri
我有这段代码(我的 strlen 函数) size_t slen(const char *str) { size_t len = 0; while (*str) {
我是一名优秀的程序员,十分优秀!