所以我试图在txt文件中找到一个特定的单词,并将其出现,我使用的代码加起来
import re
pattern = re.compile(r"\bshall\b")
pattern1 = re.compile(r"\bmay not\b")
pattern2 = re.compile(r"\bmust\b")
with open('C:\Python27\projects\Alabama\New folder\\4.txt', 'r') as myfile:
for line in myfile:
m = re.findall(pattern, line)
#m1 = re.findall(pattern1, line)
#m2 = re.findall(pattern2,line)
k = len(m)
#k1 = len(m1)
#k2 = len(m2)
#sumk = sum(len(k) for k in myfile)
print k
当我打印出k时,它给出了一个垂直列表,其中包含[0,0,0,1,0,0,0,0,1,0,0,3,0,2 ..... ...] 我可以说这些是字符串的出现次数" will"在文本的每一行中,我的问题是如何将这些数字列表相加以得到"总和/#34;在整个文本文件中。
答案 0 :(得分:1)
一种方法是使用总计:
total = 0
for line in myfile:
m = re.findall(pattern, line)
total += len(m)
print total
答案 1 :(得分:1)
如果您打算sum
列表,可以使用sum
,但需要在外部定义k
,以便替换 每次都有新的价值:
k = [] #define k as empty list here
for line in myfile:
m = re.findall(pattern, line)
k.append(len(m)) #append the list with new item
val = sum(k) #get the sum here