📅  最后修改于: 2023-12-03 15:28:44.348000             🧑  作者: Mango
本题需要编写一个Python函数,实现一个简单的文本计数器。给定一个文本文件,函数应该返回该文件中给定单词出现的次数。
def word_counter(file_path: str, word: str) -> int:
pass
返回给定单词在文件中出现的次数。如果文件不存在,返回0。
assert word_counter('test_files/test1.txt', 'Hello') == 2
assert word_counter('test_files/test2.txt', 'world') == 1
assert word_counter('test_files/test3.txt', 'Python') == 0
本题需要读取一个文本文件,并对文件中指定的单词进行计数。由于文件较小,我们可以直接使用python内置的文件读取函数进行读取。针对每行文本,我们可以通过字符串的split()函数将文本按空格分割为多个单词,然后判断指定单词是否在这个列表中即可。最后将每行中包含指定单词的计数相加即可。
具体实现可以参考以下代码:
def word_counter(file_path: str, word: str) -> int:
try:
with open(file_path, 'r') as f:
count = 0
for line in f:
words = line.strip().split()
count += words.count(word)
return count
except FileNotFoundError:
return 0
我们首先使用python的with open() ...
语句打开文件,避免因为异常未正常关闭文件导致资源泄露。针对每个文件的行,我们使用strip()
函数去除行末的空格和换行符,并使用split()
函数按空格分割成单词列表。针对每个单词列表,我们使用count()
函数统计给定单词出现的次数,然后将所有计数求和即可。
由于不存在指定的文件时会产生FileNotFoundError异常,我们需要捕获这个异常并返回0。
本题要求我们熟练掌握文件读取和字符串处理相关的函数,考察计算机编程的基础能力。为了准确处理文件中的字符,我们需要了解文件编码的相关知识。虽然文件比较小,但是我们需要从多个角度思考代码的正确性和健壮性,包括异常处理和性能优化等方方面面。