У меня есть строка с номером версии. Я хочу прочитать номер версии из этого кода, чтобы сравнить его с другим кодом, который я использую. Я сделал код ниже, но не могу заставить его работать, кто-нибудь может увидеть проблему?
print results
r = re.compile(r'(version\s*\s*)(\S+)')
for l in results:
m1 = r.match(l)
if m1:
ID=map(int,m1.group(2).split("."))
l = r.sub(r'\g<1>' + '.'.join(['%s' % (v) for v in ID]), l)
print ID
переменная результатов:
Name Info Type Call version 1.0.40.437 Fri Oct 2 10:54:35 BST 2009
Я сделал это таким образом, так как мне нужно, чтобы числа в идентификаторе были разделены на группы, поскольку мне нужно сравнить третье число в идентификаторе с третьим числом в идентификаторе в другом файле.
Приведенные ниже ответы полезны, но, как я понял, я бы прочитал файл, вынул все числа и поместил их в список, так что все, что мне нужно было бы сделать, это сравнить два числа в списке. Извините, если вопрос не был ясен, но я не хочу, чтобы номер версии был строкой.
Хорошо, я внес пару изменений в код, ответ на который приведен ниже. Код выглядит следующим образом:
version = re.compile('version\s+([\d.]+)\s+')
ID = version.search(results)
if ID:
value = ID.group(1).split('.')[2]
self.assertEqual(BUILD_ID[2], int(value))
Это не создает требуемый список, но позволяет мне сравнивать 2 значения.
Спасибо за помощь.