如何在python中对正则表达式匹配结果执行求和

时间:2014-04-01 08:38:35

标签: python regex

我试图从多个文件中提取某些数字并对提取的数字执行求和,这是我到目前为止所写的

import re, os
path = "F:/s"
in_files = os.listdir(path)

for g in in_files:
    file = os.path.join(path, g)
    text = open(file, "r")
    a = text.readlines()
    b = a[6]
    m = re.search('\t(.+?)\n', b)
    if m:
        found = m.group()
        print (found)

提取工作正常我得到了这样的结果。

122
74
97

现在我要总结所有这些数字。

2 个答案:

答案 0 :(得分:1)

让我们使用re.findall()

count = 0
for number in re.findall('\t(.+?)\n', b):
    ## add int(number.strip()) to count

答案 1 :(得分:0)

您可以在循环上方创建一个空列表,而不是打印,只需将found附加到该列表即可。然后,您可以对该列表的内容求和(如果一切顺利,您应该最终得到'整数字符串'列表)。

import re, os
path = "F:/s"
in_files = os.listdir(path)
l = []
for g in in_files:
  ...
  ...
  if m:
    found = m.group()
    l.append(found)

您的列表现在应该如下所示:['122', '74', '97'], 因此,您可以使用map()sum()查找总数(循环外):

print sum(map(int, l)) # 293