python文件读取时顺序错误的问题及解决
python文件读取时顺序错误的问题
文件读取乱序问题
文件操作的时候,经常需要处理的往往不是一个单一的文件,所以需要对文件夹进行遍历处理。
这里会使用到listdir()函数获取文件夹下所有文件的文件名列表
如图:
但是获取的顺序并不是整齐的,在做数据对应的时候可能会出现组合错误的情况。
直接上代码
对返回文件名列表的后缀进行切割,只对文件名进行数字比较排序
值得注意,如果出现字母可能会导致错误!
import os def dir_name(path): file_list = os.listdir(path) file_list.sort(key=lambda x: int(x[:-4])) # 切割后缀以'.'为分界线,按照‘.'左边的数字从小到大排序(文件名不含字母) file_name_list = [] for i in range(len(file_list)): # 路径拼接 file_name = path + '/' + file_list[i] # print(file_name) file_name_list.append(file_name) # 返回文件路径列表 return file_name_list
传入该函数一个文件夹路径,函数返回包含路径的文件名列表(顺序排列)
文件路径的拼接方式可以在函数中进行修改,如果只需要文件名,可以将拼接部分进行删除
python读取文件名乱序(彻底解决)
from natsort import ns, natsorted import os def file_sorting(path): list = os.listdir(path) files = natsorted(list,alg=ns.PATH) print(files)
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
相关文章
Python2.6版本中实现字典推导 PEP 274(Dict Comprehensions)
这篇文章主要介绍了Python2.6版本中实现字典推导 PEP 274(Dict Comprehensions),本文给出了表达式写法和for循环写法两种方法实现字符推导,需要的朋友可以参考下2015-04-04解决AttributeError:'NoneTypeobject' has no attrib
这篇文章主要介绍了解决AttributeError: ‘NoneType‘ object has no attribute ‘Window‘的问题(亲测有效),本文给大家介绍的非常想详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下2023-03-03使用python BeautifulSoup库抓取58手机维修信息
这篇文章主要介绍了一个使用python抓取58手机的精准商家信息,使用BeautifulSoup API的方法2013-11-11MacOS(M1芯片 arm架构)下安装tensorflow的详细过程
这篇文章主要介绍了MacOS(M1芯片 arm架构)下如何安装tensorflow,本节使用的版本是tensorflow2.4 python3.8,因此并未安装加速插件,本文结合实例代码详细讲解,需要的朋友可以参考下2023-02-02
最新评论