如下图,获取Data路径下的文件夹名,并排序
具体实现如下:
import os
''' 获取 文件夹名 列表 '''
path1 = './Data/'
file_list = next(os.walk(path1))[1]
''' 文件夹名 排序 '''
# 文件夹名 按字符串排序
file_list.sort()
print(file_list)
# ['file1', 'file101', 'file102', 'file103', 'file11', 'file12',
# 'file13', 'file2', 'file21', 'file22', 'file23', 'file3']
# 文件夹名 按数字排序
file_list.sort(key=lambda x: int(x[4:]))
print(file_list)
# ['file1', 'file2', 'file3', 'file11', 'file12', 'file13',
# 'file21', 'file22', 'file23', 'file101', 'file102', 'file103']
如下图,获取file1文件夹下的文件名,并排序
具体实现如下:
import os
''' 获取 文件名 列表 '''
path2 = './Data/file1/'
test_list = next(os.walk(path2))[2]
''' 文件名 排序 '''
# 文件名 按字符串排序
test_list.sort()
print(test_list)
# ['test001_1.txt', 'test001_101.txt', 'test001_102.txt', 'test001_103.txt', 'test001_11.txt',
# 'test001_12.txt', 'test001_13.txt', 'test001_2.txt', 'test001_21.txt', 'test001_22.txt',
# 'test001_23.txt', 'test001_3.txt', 'test001_31.txt', 'test001_32.txt', 'test001_33.txt']
# 文件名 按数字排序
test_list.sort(key=lambda x: int(x.split('_')[1][:-4]))
print(test_list)
# ['test001_1.txt', 'test001_2.txt', 'test001_3.txt', 'test001_11.txt', 'test001_12.txt',
# 'test001_13.txt', 'test001_21.txt', 'test001_22.txt', 'test001_23.txt', 'test001_31.txt',
# 'test001_32.txt', 'test001_33.txt', 'test001_101.txt', 'test001_102.txt', 'test001_103.txt']
附 1:
list.reverse() # 可直接在原来的列表里面将元素进行逆序排列,不需要创建新的副本用于存储结果。
list.sort(key=lambda x: x.lower())
list.sort(key=lambda x: os.path.getctime(x)) # 精确到秒
或
list.sort(key=lambda x: os.stat(x).st_ctime_ns) # 精确到纳秒
附 2:
import random
list = …
random.shuffle(list)