python 實現一級中文排序,並輸出

2021-10-08 09:29:26 字數 1510 閱讀 9730

目標:從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 ...