Преобразование строки, содержащей шестнадцатеричный код (вместе с другими символами), в двоичный код в Python

У меня есть файл, содержащий строки something.something(hexvalue1,hexvalue2)

Я пытаюсь преобразовать эти шестнадцатеричные значения в двоичные. Из того, что я исследовал, я понял, что мне придется искать шестнадцатеричные значения в каждой строке, а затем преобразовывать их в двоичные. Я не уверен, как выполнить поиск в строке шестнадцатеричных значений с другими переменными в ней. Примечание. Все строки имеют одинаковый формат.

Когда я делаю :

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

не разделяется на '('


person Ram    schedule 27.11.2012    source источник
comment
Вы ищете аргументы шестнадцатеричных значений для функций? (т.е. работаете ли вы над исходным кодом), если нет - чем? Кроме того, почему вы хотите сделать именно это?   -  person Jon Clements♦    schedule 27.11.2012
comment
Можете ли вы привести реальный пример строки?   -  person Keith    schedule 27.11.2012
comment
Я пытаюсь сделать это, чтобы я мог передать это значение в другую систему, и эта система принимает только двоичный ввод. Я пишу скрипт, который будет анализировать входной файл и печатать необходимые строки (с этими шестнадцатеричными значениями) в выходной файл. Я преобразовываю шестнадцатеричные значения в выходном файле в двоичные и присваиваю их двум переменным.   -  person Ram    schedule 28.11.2012
comment
Я на шаге 2. Я проанализировал файл. У меня есть строки, я преобразовал их в двоичные файлы. Я не хочу публиковать весь скрипт на форуме, поэтому просто дал часть, которая преобразует шестнадцатеричный код в двоичный.   -  person Ram    schedule 28.11.2012


Ответы (1)


В 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']
person mgilson    schedule 27.11.2012