码迷,mamicode.com
首页 > 其他好文 > 详细

20190221-文件操作

时间:2019-02-21 21:39:06      阅读:184      评论:0      收藏:0      [点我收藏+]

标签:line   总数   enc   encoding   open   step   包含   内容   mil   

假定一个全英文的文件,读取该文件,请统计多少个不重复的单词,并且在另外一个文件中写上结果每个单词出现的次数,以及一共有多少个不重复的单词分别为哪些

 

注意:文件中可能包含特殊符号

Step1:打开文件,可使用方法如下:

  方法1:fp = open(file,‘r‘,encoding =‘utf-8‘)

  方法2:with open(file,‘r‘,encoding =‘utf-8‘) as fp:

Step2:读取文件,基于该题的需求,我们按行读取,并对每行进行处理如下:

  1.读取每一行,将每一行中的特殊字符替换为空白

  2.将替换后的字符加到一个content里面(content最终用来存储文件里面的所有被去掉特殊字符的单词结果)

Step3:统计每个单词的出现次数:

  1.统计结果使用字典存储格式如下{单词:出现次数}

  2.出现次数为1的单词即为不重复的单词

Step4:将每个单词的出现次数写到一个新的文件中

  1.遍历step产生的字典,将Key:value写入新的文件

代码如下:

def count_file_content(file_dir):
    result =‘‘#存储所有被处理了特殊字符的文件内容
    word_count_result={}#存储单词出现次数
    import string
    with open(file_dir,r,encoding =utf-8) as fp:
        for line in fp:
            s = line.strip()
            for i in string.punctuation:
                s = s.replace(i, )
            result +=s
#获取不包含特殊字符的文件内容
    word_list = result.split()
    for item in word_list:
       # print(item)
        if item in word_count_result.keys():
            word_count_result[item]+=1
        else:
            word_count_result[item]=1
#获取每个单词出现次数
    count =0
    non_duplicateword=[]
    #统计不重复单词的个数
    for k,w in word_count_result.items():
        if w ==1:
            count+=1
            non_duplicateword.append(k)
#non_duplicateword存储的所有仅出现一次的单词,count 为仅出现一次的单词总数
    with open(file_dir+result.txt,w,encoding =utf-8) as fp1:
        fp1.write(一共+str(count)+个不重复的单词\n)
        for k,w in word_count_result.items():
            fp1.write(k+"单词出现"+str(w)+"次\n")
#将结果写入另一个文件中

 

 

 

 

  

    

 

20190221-文件操作

标签:line   总数   enc   encoding   open   step   包含   内容   mil   

原文地址:https://www.cnblogs.com/hyj691001/p/10415427.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!