我试图从多个文件中提取某些数字并对提取的数字执行求和,这是我到目前为止所写的
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
现在我要总结所有这些数字。
答案 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