在python中如何制定os模块walk函数的排序方式
时间: 2023-05-28 19:08:06 浏览: 116
30个常用python实现.pdf
在Python中,os模块的walk函数默认按照文件名的字典序排序,如果需要按照其他方式排序,可以自定义排序函数并传递给walk函数的sort参数。
例如,如果要按照文件大小从小到大排序,可以定义一个比较函数:
```python
import os
def cmp_by_size(file1, file2):
size1 = os.path.getsize(file1)
size2 = os.path.getsize(file2)
return size1 - size2
dir_path = '/path/to/dir'
for root, dirs, files in os.walk(dir_path, topdown=True, sortkey=cmp_to_key(cmp_by_size)):
for file in files:
print(os.path.join(root, file))
```
在上面的例子中,自定义了一个比较函数cmp_by_size,该函数接收两个文件路径作为参数,比较它们的大小并返回结果。然后将该函数转换成key函数,传递给walk函数的sortkey参数,让walk函数按照该函数的返回值进行排序。最终输出的文件列表将按照文件大小从小到大排序。
阅读全文