在Python中将包含十六进制(以及其他字符)的字符串转换为二进制

时间:2012-11-27 01:51:44

标签: python string binary hex

我有一个包含something.something(hexvalue1,hexvalue2)

行的文件

我正在尝试将这些hexvalues转换为二进制。根据我的研究,我发现我必须在每一行中搜索十六进制值,然后将它们转换为二进制。我不知道如何在字符串中搜索包含其他变量的十六进制值。 注意:所有行都采用相同的格式。

当我这样做时:

for line in file:
    string = line
    string.split('(')

不会在'('

分开

1 个答案:

答案 0 :(得分:2)

在python中,所有字符串方法都返回新对象(它们具有,因为字符串是不可变类型)。 str.split会返回list。因此,要解析您的字符串,它将类似于:

for line in file:
    left,right = line.split('(',1)
    hexvalues = right.split(')')[0]
    hex1,hex2 = hexvalues.split(',')

对于那些更倾向于正则表达式的人:

import re
>>> re.findall(r'\(([^)]+)',"this.is(0xffaabb,0x112214)")
['0xffaabb,0x112214']