Python實現(xiàn)統(tǒng)計文本中的字符數(shù)量
最近,由于工作需要統(tǒng)計一下文本文檔中的各種不同類字符的數(shù)量。將txt文本文檔中包含的的中文、英文、數(shù)字等字符數(shù)量進行統(tǒng)計。
這當然可以使用python的自動化來完成操作,其實采用python字符串自帶的大多數(shù)函數(shù)就能夠完成功能。
由于統(tǒng)計英文字符的需要,這里需要導入string內(nèi)置模塊,以及os等文件操作模塊就能夠輕松完成。
import?string??#?string內(nèi)置模塊 import?os??#?os文件操作模塊
首先,需要開發(fā)一個函數(shù)用來完成對一個普通的字符串中的各種不同類型的字符進行統(tǒng)計,如下代碼所示:
def?count_string(str_=None): ????count_en?=?count_dg?=?count_sp?=?count_zh?=?count_pu?=?0 ????if?str_?is?None: ????????print("字符串str_為空!") ????????return?count_en,?count_dg,?count_sp,?count_zh,?count_pu ????for?st?in?str_: ????????#?英文 ????????if?st?in?string.ascii_letters: ????????????count_en?+=?1 ????????#?數(shù)字 ????????elif?st.isdigit(): ????????????count_dg?+=?1 ????????#?空格 ????????elif?st.isspace(): ????????????count_sp?+=?1 ????????#?中文 ????????elif?st.isalpha(): ????????????count_zh?+=?1 ????????#?特殊字符 ????????else: ????????????count_pu?+=?1 ????print("字符串str_:",?str_) ????return?count_en,?count_dg,?count_sp,?count_zh,?count_pu
上面的count_string函數(shù)已經(jīng)實現(xiàn)了可以對某個字符串中的不同字符數(shù)量進行統(tǒng)計。
接下來,需要讀取我們的txt文本文檔,然后對其中每一行的字符串進行統(tǒng)計。從而可以獲取整個文檔中的不同字符的數(shù)量分別是多少。
代碼如下:
def?read_text(text_path=None): ????count_en_all?=?count_dg_all?=?count_sp_all?=?count_zh_all?=?count_pu_all?=?0 ????if?text_path?is?None: ????????print('文本文檔的路徑不能為空!') ????????return ????if?not?os.path.isfile(text_path): ????????print('文本文檔的路徑不存在,請重新輸入!') ????????return ????with?open(text_path,?'r',?encoding='utf-8')?as?file_: ????????for?line_?in?file_.readlines(): ????????????if?line_.strip()?!=?'': ????????????????count_en,?count_dg,?count_sp,?count_zh,?count_pu?=?count_string(line_) ????????????????count_en_all?=?count_en_all?+?count_en ????????????????count_dg_all?=?count_dg_all?+?count_dg ????????????????count_sp_all?=?count_sp_all?+?count_sp ????????????????count_zh_all?=?count_zh_all?+?count_zh ????????????????count_pu_all?=?count_pu_all?+?count_pu ????print('當前文本文檔{},結果統(tǒng)計如下:'.format(text_path)) ????print('英文字符:',?count_en_all) ????print('數(shù)字:',?count_dg_all) ????print('空格:',?count_sp_all) ????print('中文:',?count_zh_all) ????print('特殊字符:',?count_pu_all)
最后,我們通過調(diào)用read_text文本文檔處理函數(shù),即可統(tǒng)計出當前文檔所有的不同字符的數(shù)量。
read_text('D:/test-data-work/data.txt') #?當前文本文檔D:/test-data-work/data.txt,結果統(tǒng)計如下: #?英文字符:108 #?數(shù)字:209 #?空格:53 #?中文:288 #?特殊字符:90
若是需要批量操作,則可以使用python遍歷文件夾的方式,對每個文檔進行逐一統(tǒng)計。
這里可以使用os.listdir函數(shù)對文件夾進行簡單的遍歷操作。
for?file_name?in?os.listdir('dir_path'): ????pass
到此這篇關于Python實現(xiàn)統(tǒng)計文本中的字符數(shù)量的文章就介紹到這了,更多相關Python統(tǒng)計文本字符數(shù)量內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Python實現(xiàn)圖像尺寸和格式轉(zhuǎn)換處理的示例詳解
這篇文章主要為大家詳細介紹了如何利用Python實現(xiàn)圖像尺寸獲取和格式轉(zhuǎn)換處理的功能,文中的示例代碼講解詳細,感興趣的可以了解一下2023-04-04Python利用AutoGrad實現(xiàn)自動計算函數(shù)斜率和梯度
AutoGrad 是一個老少皆宜的 Python 梯度計算模塊。對于大學生、機器學習愛好者而言,你只需要傳遞給它Numpy這樣的標準數(shù)據(jù)庫下編寫的損失函數(shù),它就可以自動計算損失函數(shù)的導數(shù)(梯度)。本文將從普通斜率計算開始,介紹到如何只使用它來實現(xiàn)一個邏輯回歸模型2022-07-07