面试题答案
一键面试Python解决方案
def count_specific_word(file_path, target_word):
word_count = 0
with open(file_path, 'r', encoding='utf-8') as file:
for line in file:
words = line.split()
for word in words:
if word == target_word:
word_count += 1
return word_count
使用示例:
file_path = 'large_text_file.txt'
target_word = 'example'
result = count_specific_word(file_path, target_word)
print(f"The word '{target_word}' appears {result} times.")
关键技术点
- 逐行读取:使用
with open(file_path, 'r', encoding='utf-8') as file
打开文件,并通过for line in file
逐行读取文件内容。这样避免一次性将整个数GB的文件读入内存,极大地降低了内存占用。 - 字符串分割:对每一行使用
split()
方法将其分割成单词,方便后续对每个单词进行检查。
性能优化策略
- 避免不必要的转换:保持文本以字符串形式处理,不进行多余的格式转换,减少额外的内存开销和处理时间。
- 高效的字符串比较:直接使用
==
进行单词比较,Python在字符串比较上有较好的优化,这种简单的比较操作效率较高。 - 减少中间数据存储:在遍历过程中直接统计目标单词的出现次数,而不是先存储所有单词再进行统计,进一步降低内存占用。