0

问题是从文本文件中的一堆垃圾中提取数据。例如,首先,我需要从文本文件中提取这个特定部分:

%T 525 1:0.00:6425.12 2:0.01:6231.12 3:0.00:3234.51 并且持续了很长时间。

然后,我需要专门从每个短语中提取第三个数据,即 6425.12、6231.12 和 3234.51,并将其写入一个新的文本文件,然后对这些数据进行其他编辑。

我正在考虑在这种情况下使用正则表达式。任何人都可以显示示例代码吗?对于经验丰富的程序员来说应该是相当直截了当的。

4

2 回答 2

2

你不需要re得到数字...

s='%T 525 1:0.00:6425.12 2:0.01:6231.12 3:0.00:3234.51'
columns=s.split()[2:]  #Create a list of all the columns except the first 2.
numbers=[c.split(':')[-1] for c in columns]  #Split each column on ':' and take the last piece.

但是,我们需要更多关于文件结构的信息,然后才能确定如何首先挑选出字符串s

于 2012-05-09T15:20:20.467 回答
2

我不认为我会为此求助于正则表达式,看起来很简单。

with open(...) as file:
    for line in file:
        for word in line.split():
             if ':' in word:
                  print word.split(':')[2]  # do something with it here
于 2012-05-09T15:20:54.880 回答