Python使用os.listdir时与windows资源管理器展示顺序不一致
背景 Python 中 os 模块所提供的 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)