Python如何获取⽬录下的⽂件列表,并⾃然排序在实际的算法与程序开发中,经常需要⾯对的场景就是对同⼀⽬录内的⽂件进⾏批量操作。
并且很多时候⽬录中的⽂件明明是有规律的,同时希望程序在进⾏处理时也是按照⼀定的顺序进⾏。
⽅法 1
>>> import os
>>> fileList = os.listdir('TestDir')
>>> fileList
['', '', '', '', '', '']
>>> fileList.sort(key= lambda x:int(x[4:-4]))
>>> fileList
['', '', '', '', '', '']
>>>
⽅法 2
>>> import os
>>> import natsort
>>> fileList = os.listdir('TestDir')
>>> fileList
['', '', '', '', '', '']
>>> fileList = natsort.natsorted(fileList)
>>> fileList
['', '', '', '', '', '']
>>>
补充:python对⽬录下的⽂件排序问题
python怎么读文件夹下的文件夹
1.按照时间来排序
def get_file_list(file_path):
dir_list = os.listdir(file_path)
if not dir_list:
return
else:
# 注意,这⾥使⽤lambda表达式,将⽂件按照最后修改时间顺序升序排列
# ime() 函数是获取⽂件最后修改时间
# ime() 函数是获取⽂件最后创建时间
dir_list = sorted(dir_list,key=lambda x: ime(os.path.join(file_path, x)))
# print(dir_list)
return dir_list
2.获取最后修改时间的⽂件路径
import os
url='D:\PycharmProjects\Ambulance_Api\logs'
lists=os.listdir(url)
print(lists)
lists.sort(key=lambda fn: ime(url+'\\'+fn))
filepath=os.path.join(url,lists[-1])
print(filepath)
3.按照⽂件名字来排序
1)⽤库函数sorted()对字符串排序,它的对象是字符
2)⽤函数sort()对数字排序,它的对象是数字,如果读取⽂件的话,需要进⾏处理(把⽂件后缀名‘屏蔽')
import os
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)
sort函数中⽤到了匿名函数(key = lambda x:int(x[:-4])),其作⽤是将后缀名'.jpg'“屏蔽”(因为‘.jpg'是4个字符,所以[:-4]的含义是从⽂件名开始到倒数第四个字符为⽌)
以上为个⼈经验,希望能给⼤家⼀个参考,也希望⼤家多多⽀持。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论