假定一個全英文的文件,讀取該文件,請統計多少個不重覆的單詞,並且在另外一個文件中寫上結果每個單詞出現的次數,以及一共有多少個不重覆的單詞分別為哪些 註意:文件中可能包含特殊符號 Step1:打開文件,可使用方法如下: 方法1:fp = open(file,'r',encoding ='utf-8') ...
假定一個全英文的文件,讀取該文件,請統計多少個不重覆的單詞,並且在另外一個文件中寫上結果每個單詞出現的次數,以及一共有多少個不重覆的單詞分別為哪些
註意:文件中可能包含特殊符號
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")
#將結果寫入另一個文件中