-2

我有一个程序的输出作为文本,如:

------------
Action specified: GetInfo

Gathering information...

Reported chip type: 2307

Reported chip ID: 98-DE-94-93-76-50

Reported firmware version: 1.08.10

------------

但我必须只保存Reported chip type: value "2307"在一个变量中。怎么可能?

4

2 回答 2

1

你通常会用正则表达式做这样的事情

import re
match = re.search('Reported chip type:\s(?P<chip_type>\d+)', my_text)
chiptype = int(match.group('chip_type'))     

>>> print chiptype
2307

不过,在您的情况下,只需使用几个拆分可能就足够简单了:

chiptype = int(my_text.split('Reported chip type:', 1)[-1].split('\n')[0].strip())
于 2015-07-01T19:36:42.127 回答
0

假设您可以读取文件并将其读入名为的变量text

for line in text:
    if line.startswith("Reported chip type:"):
        _, chiptype = line.split(':')
        break

print chiptype

这会将“报告的芯片类型:”的值的第一个实例放入chiptype.

您的输出如下所示:

 2307

请注意,有一个前导空格。int如果您知道它始终是int您可以这样做 的,我们可以将其转换为: chiptype = int(chiptype). 如果它只是一个字符串,你可以去掉前导空格:chiptype = chiptype.strip()

于 2015-07-01T19:30:37.500 回答