背景

Pythonos 模块所提供的 listdir() 方法给出的序列,会由于执行器的编码情况而不同.在未设置的 cli 中使用 gbk 排序,在配置过的 IDE 中使用 UTF-8

无论是gbk还是UTF-8编码,均不是按照拼音排序,从而导致了与Windows资源管理器中的顺序不一致。

解决

使用 pip 下载 natsort 包。

其中有一个函数 os_sorted() 即与操作系统给出的文件顺序保持一致。

使用

1
2
3
4
5
6
7
8
import os
from natsort import os_sorted

pwd = os.getcwd()  # 获取当前目录
filenamelist = os.listdir(pwd)  # ls该目录
sortedlist = os_sorted(filenamelist)  # 即为排好序的文件列表

print(sortedlist)