python - Python:如何获得与 Windows 文件名排序相同的排序顺序?
问题描述
我想像 Windows 一样在 python 中对文件名进行排序。我准备了四个文件(或文件夹)。
1. [abc]abc【abc】
2. [abc]abcabc【abc】
3. 001
4. 002
这些按 Windows 排序(升序):1 -> 2 -> 3 -> 4
但在 python 中,当使用排序函数或 natsort(ns.PATH) 时:3 -> 4 -> 2-> 1
如何解决这个问题呢?
解决方案
如果您希望它按照文件资源管理器默认放置文件名的顺序,那么您将首先需要文件夹,然后是文件,并且这两个部分都按字母顺序排列。
下面的代码以与列表中的文件资源管理器完全相同的顺序存储目录中的所有文件this_dir
。
import os
folder_path = "C:\\Path\\To\\Your\\Folder"
files = []
folders = []
for f in os.listdir(folder_path):
fname = os.path.join(folder_path, f)
if os.path.isdir(fname):
folders.append(f)
if os.path.isfile(fname):
files.append(f)
this_dir = folders + files
print("\n".join([" - " + f for f in this_dir]))
输出:
- abc
- abcabc
- 001.txt
- 002.txt
- abc.txt
- abcabc.txt
这与文件资源管理器列出它们的顺序相同。(abc
并且abcabc
都是文件夹)
推荐阅读
- swift - 在 Swift 中关闭 macOS 的模式表
- angular - Angular Rest Service 在创建实体时使用 Hal 根链接而不是属性
- javascript - 如何将文件路径放在 package.json 文件中
- javascript - gchjs-dom安装问题:安装jsaddle-dom内存不足
- ajax - 单击登录按钮时无法输入正确的页面
- c++ - 使用类的成员构造函数后出现分段错误
- firebase - 颤振位置距离有效值但返回 null
- flutter - 在 Flutter 应用程序中将文本编码到捕获的图像上
- r - 有人可以帮助我了解如何在 R 中使用 Lag 或 Lead 函数吗?
- react-native - 找不到 NativeReanimated'