python os.listdir按照时间排序
python
的os.listdir
在linux
上有时候经常不是按照时间顺序,也不是按照文件名顺序排序的。
下面片段是按照时间排序
def get_file_list(file_path):
dir_list = os.listdir(file_path)
if not dir_list:
return
else:
# 注意,这里使用lambda表达式,将文件按照最后修改时间顺序升序排列
# os.path.getmtime() 函数是获取文件最后修改时间
# os.path.getctime() 函数是获取文件最后创建时间
dir_list = sorted(dir_list,key=lambda x: os.path.getmtime(os.path.join(file_path, x)))
# print(dir_list)
return dir_list
下面片段是按照文件名
排序
img_path ='./img/'
img_list =sorted(os.listdir(img_path)) #文件名按字母排序
img_nums =len(img_list)
for i in range(img_nums):
img_name = img_path + img_list[i]
print(img_name)
sorted
适用于字符串的排序,sort
适用于数值的排序,如果需要按照数值或者去掉后缀的文件名排序,那么需要自定义函数或者用lambda
函数。