计算文件中的标点符号



网站用户好我有这样一个问题,当从文件中读取一行上的逗号数量时,会显示从前几行获取的逗号总数。如何使其为每行显示不同数量的逗号?

f = open("file.txt", "r")
cout = 0
vcout = 0
zap = 0
while 1:
l = f.readline()
cout += 1
zappr = '.' in l
zappr1 = '?' in l
zappr2 = '!' in l
zappr3 = '...' in l
zappr4 = ',' in l
zappr5 = ';' in l
zappr6 = ':' in l
zappr7 = '-' in l
zappr8 = '(' in l
zappr9 = ')' in l
zappr10 = '"' in l
if zappr == True or zappr1 == True or zappr2 == True or zappr3 == True or zappr4 == True or zappr5 == True or zappr6 == True or zappr7 == True or zappr8 == True or zappr9 == True or zappr10 == True:
zap += 1
print('On line',zap,'punctuation marks')
if not l:
break
print('In file',cout-1,'lines')
print('In file',zap+1,'punctuation marks')
f.close()

每行输出标点符号

On line 0 punctuation marks
On line 1 punctuation marks
On line 2 punctuation marks
On line 2 punctuation marks
On line 3 punctuation marks
On line 3 punctuation marks
On line 4 punctuation marks
On line 4 punctuation marks

这里的输出将与问题中建议的输出不同,但应该有助于如何完成:

from string import punctuation
with open('file.txt') as data:
for i, line in enumerate(map(str.strip, data), 1):
counter = sum(line.count(p_) for p_ in punctuation)
print(f'There are {counter} punctuation marks in line {i}')

相关内容

最新更新