假设我们有一个示例文件
doc.txt
内容如下:
这是一个识别大写单词的测试文件。
我创建这个示例是因为问题的需求可能会有所不同。
例如,像SQL这样的首字母缩略词应该算作大写吗?
如果是:这将导致九个。
如果要计算大写(也称为标题大小写)单词,但排除所有大写单词(如首字母缩略词),可以执行以下操作:
def count_capital_words(filename):
count = 0
with open(filename, 'r') as fp:
for line in fp:
for word in line.split():
if word.istitle():
print(word)
count += 1
return count
print(count_capital_words('doc.txt')) # 8
filter(None, ...)
功能将确保
word
IndexError
如果是这样的话:
def count_capital_words(filename):
count = 0
with open(filename, 'r') as fp:
for line in fp:
for word in filter(None, line.split()):
if word[0].isupper():
count += 1
return count
print(count_capital_words('doc.txt')) # 9
from itertools import chain
def get_words(filename):
with open(filename, 'r') as fp:
words = chain.from_iterable(line.split() for line in fp)
yield from words