目標:從txt檔案中取出除了注釋以外的一級中文,按拼音排序並輸出
實現:1.需要 安裝 pypinyin 模組 pip install pypinyin
**如下
#coding:utf-8
import re
import os
from pypinyin import
*'''
去除重複的字元
'''def
str_duplication
(str):
duplication_str =
''for char in
str:
ifnot char in duplication_str:
duplication_str += char
return duplication_str
'''輸出排序後的中文字元
'''def
output_sort_str
(str):
data =
''# 正規表示式
rule =
'//.*|/\*([^\*]|(\*)*[^\*/])*(\*)*\*/'
# 去除str中的注釋 將str中的注釋用''替換
data = re.sub(rule,'',
str)
# 使用正則表達獲取中文
data = re.findall(r'[\u4e00-\u9fa5]'
, data)
data = str_duplication(data)
# print(data)
#排序 new_list =
sorted
(data, key=
lambda data: lazy_pinyin(data,2)
)# 按拼音對漢字進行排序
# new_list = sorted(data, key=lambda data: data.encode('utf-8')) # 按拼音對漢字進行排序
#轉為字串
new_str =
''.join(new_list)
return new_str
txt_name =
'oled.txt'
#you filename
with
open
(txt_name,
"r",encoding =
"utf-8"
)as fp:
lines = fp.readlines(
)# 將列表轉換成字串
str_data =
''.join(lines)
chinese_data = output_sort_str(str_data)
print
(str_data)
輸出結果
啊阿打分胡見卡看釐洛綠杉
process finished with exit code 0
python一級物件 python高階類與物件深度
1.abc模組 不要以abc為模組名稱 class demo object def init self,li self.li li def len self return len self.li l c 李雲 九折 d demo l print d main demo object at print...
python篩選特定檔案返回上一級目錄
需求 給乙個大的路徑,想要篩選包含特定檔案的資料夾目錄,資料夾下子資料夾內的東西不做檢索。import os from natsort import natsorted g os.walk r g test 獲取所有檔案及子檔案 list for path,dir list,file list in...
利用python實現排序,並標上序號
需求 利用python實現排序功能 測試資料 data.csv id date amount 1 2019 02 08 6214.23 1 2019 02 08 6247.32 1 2019 02 09 85.63 2 2019 02 14 943.18 2 2019 02 15 369.76 2 ...