使用场景
在Python中,若使用os.listdir()方法获取目录下文件,会得到乱序排序的文件
那如何使这些文件按照Windows中的文件名排序方法排序呢?
使用方法
首先安装pypinyin
pip install pypinyin
然后使用以下代码(可以放在项目的另一文件内)
from pypinyin import *
import os
def is_chinese(char):
if '\u4e00' <= char <= '\u9fff':
return True
else:
return False
def get_files(dir_=""):
lst = os.listdir(dir_)
chinese = []
for i in lst:
if is_chinese(i[0]):
chinese.append(i)
for i in chinese:
lst.remove(i)
chinese.sort(key=lambda keys:[pinyin(i, style=Style.TONE3) for i in keys])
lst.sort(key=str.casefold)
return lst + chinese
需要时直接调用get_files()即可