python文件中数字排序_python – 你如何数字排序文件?

首先,我发布这个,因为当我在寻找下面的问题的解决方案,我找不到一个在stackoverflow。所以,我希望在这里添加一点知识库。

我需要处理一个目录中的一些文件,并且需要以数字方式对文件进行排序。我发现一些关于排序的例子 – 特别是使用lambda模式 – 在wiki.python.org,我把它放在一起:

#!env/python

import re

tiffFiles = """ayurveda_1.tif

ayurveda_11.tif

ayurveda_13.tif

ayurveda_2.tif

ayurveda_20.tif

ayurveda_22.tif""".split('\n')

numPattern = re.compile('_(\d{1,2})\.', re.IGNORECASE)

tiffFiles.sort(cmp, key=lambda tFile:

int(numPattern.search(tFile).group(1)))

print tiffFiles

我还是很喜欢Python,并且想问社区是否有任何改进可以做到这一点:缩短代码(删除lambda),性能,样式/可读性?

谢谢,

扎卡里

您好,可以使用Python内置的`sorted`函数和`os`模块来实现文件信息排序,具体步骤如下: 1. 使用`os.listdir`函数获取目标文件所有文件文件名,并保存在一个列表。 2. 遍历列表的每个文件名,使用`os.path.join`函数将文件名与目标文件夹路径拼接,获取文件的完整路径。 3. 使用`os.path.getmtime`函数获取文件的最后修改时间,并将该时间作为元组的第一个元素。 4. 将文件名和修改时间元组作为一个元素添加到另一个列表。 5. 使用`sorted`函数对文件名和修改时间元组的列表进行排序排序的关键字为元组的第一个元素(即修改时间)。 6. 遍历排序后的列表,输出排序后的文件名和修改时间信息。 下面是示例代码: ```python import os folder_path = "your/folder/path" # 目标文件夹路径 # 获取目标文件所有文件文件名 file_names = os.listdir(folder_path) # 遍历所有文件,获取文件名和修改时间信息 file_info = [] for name in file_names: file_path = os.path.join(folder_path, name) # 文件的完整路径 mtime = os.path.getmtime(file_path) # 文件的最后修改时间 file_info.append((name, mtime)) # 将文件名和修改时间元组作为一个元素添加到列表 # 按照修改时间排序文件信息列表 sorted_file_info = sorted(file_info, key=lambda x: x[1]) # 输出排序后的文件名和修改时间信息 for name, mtime in sorted_file_info: print(f"{name} - {mtime}") ``` 请将`your/folder/path`替换为目标文件夹的实际路径。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值