添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
#函数statistic_word()实现统计单个文本文件中英文单词出现的次数,统计结果存到word_dict
def statistic_word(source_file_name):
    word_dict = {}
        with open(source_file_name, "r") as fp:
            line_content = fp.read()
            word_list = line_content.split()  # 使用空格对读取内容进行拆分
            for word in word_list:
            # 删除一些特殊符号,防止对提取单词造成误判
                word = word.rstrip('.').rstrip(',').rstrip(':').rstrip("()").strip('"')
                # 只统计纯英文单词,同时限制单词的长度大于1
                if word.isalpha() and len(word) >1:
                    word = word.lower() # 将单词都转为小写
                    word_dict[word] = word_dict.get(word,0) + 1  #完成一个单词出现次数的计数
    except:
        print("文件:'%s'不存在!"%source_file_name)
    return word_dict

2、word_sort.py

# 函数write_statistic_results()实现将统计结果以降序排列并写入文件。
def write_statistic_results(word_dict):  #将刚刚统计好的word_dict传入
    # 将字典的值从大到小进行排序
    sort_list = sorted(word_dict.items(), key = lambda x:x[1],reverse=True)
    # 将统计结果写回文件words_number.txt中并保存
    with open("words_number.txt","w",encoding="UTF-8") as fp:
        for item in sort_list:  
         # item是字典中的元素,item[0]作为key值表示单词,item[1]作为value表示此单词出现的次数
            fp.write("%s:%d\n"%(item[0],item[1]))

3、test.py

# 测试模块
from word_number import  statistic_word
from word_sort import write_statistic_results
file_name = input("请输入文件名(若有多个文件,中间用英文逗号隔开):\n")
file_name_list = file_name.split(",")  #若有多个文件,就以英文的,分隔开
total_word_dict = {}  # 结果字典
for file_name in file_name_list:
    file_name = file_name.strip()  # 删除每个文件前后的空格或者换行符,增强输入的鲁棒性
    words_dict = statistic_word(file_name)  
    for key, value in words_dict.items(): # 遍历每篇文章的结果词典
        total_word_dict[key] = total_word_dict.get(key, 0) + value
write_statistic_results(total_word_dict)  # 调用函数,得出结果

注意with语句

with语句的作用是自动关闭文件,释放资源;不用写关闭文件的操作,简化了代码。

with open("data.txt", "w") as fp:   # 打开文件
    fp.write("Hello Python")   # 写入数据
with open("first.txt", "r") as fp1, open("second.txt", "w") as fp2: 
       # 在这里通过文件对象读写文件内容的语句