如何查看某行是否在文本文件行的任何位置包含某个字符?我目前有:
charCounter=0
with open('file', 'r') as f:
for line in f:
if 'a' in line:
charCounter=charCounter+1
但是,计数器增量的唯一时间是字符是行中的第一个字符。如果角色出现在任何一点的行中,我需要检查它。
答案 0 :(得分:0)
检查中途的舌头,为什么只计算一个角色,你可以更容易地计算所有角色:
from collections import Counter
c=Counter()
with open('file') as f:
c=Counter(ch for line in f for ch in line)
>>> c
Counter({' ': 99, '-': 85, 'e': 12, 'o': 12, '>': 11, '<': 10, 'n': 8, '\n': 7, 't': 7, 'd': 6, '/': 5, 'i': 5, 'm': 5, 'r': 4, '|': 4, 'a': 3, 'g': 3, 'f': 3, 'h': 3, '+': 2, 'T': 2, 'b': 2, 'y': 2, '!': 1, "'": 1, '.': 1, '1': 1, 'D': 1, 'J': 1, 'R': 1, 'k': 1, 'l': 1, 's': 1, 'w': 1, 'v': 1, 'x': 1})
然后知道你的具体人物数量:
>>> c['a']
3
(在此特定文件中,有3 'a
&#39;`)
或者你可以跳过计数器,如果你真的只想要一个角色并在sum
中使用相同的理解:
with open('file') as f:
c=sum(1 for line in f for ch in line if ch=='a')
>>> c
3
如果您想要包含'a'
的行,您可以这样做:
with open('file') as f:
print sum(1 for line in f if 'a' in line)