python 按照自然数排序遍历文件 python os.listdir sort by natural sorting

import os
import re
def sorted_aphanumeric(data):
    convert = lambda text: int(text) if text.isdigit() else text.lower()
    alphanum_key = lambda key: [ convert(c) for c in re.split(‘([0-9]+)‘, key) ]
    return sorted(data, key=alphanum_key)

file = sorted_aphanumeric(os.listdir("./2"))
for f in file:
    print(f) 

参考

https://stackoverflow.com/questions/4813061/non-alphanumeric-list-order-from-os-listdir

Python for whatever reason does not come with a built-in way to have natural sorting (meaning 1, 2, 10 instead of 1, 10, 2), so you have to write it yourself:

import re
def sorted_aphanumeric(data):
    convert = lambda text: int(text) if text.isdigit() else text.lower()
    alphanum_key = lambda key: [ convert(c) for c in re.split(‘([0-9]+)‘, key) ]
    return sorted(data, key=alphanum_key)

You can now use this function to sort a list:

dirlist = sorted_aphanumeric(os.listdir(...))

原文地址:https://www.cnblogs.com/adong7639/p/9597140.html

时间: 2024-10-29 09:20:35

python 按照自然数排序遍历文件 python os.listdir sort by natural sorting的相关文章

Python封装一个函数接受文件夹的名称作为输入参数,打印该文件夹中的的全部路程信息(遍历路径)

Python时间简单的遍历文件夹路径,代码如下:import os def bianli(path):info = os.listdir(path)for v in info:p = os.path.join(path, v)print(p)if os.path.isdir(p):bianli(p)bianli('D:/重命名') 实现效果如下: 原文地址:http://blog.51cto.com/13241097/2115031

python 文件操作 os

全部函数可以用help(os)或是dir(os)查看其用法. 1.重命名:os.rename(old, new) 2.删除:os.remove(file) 3.列出目录下的文件 :os.listdir(path) 4.获取当前工作目录:os.getcwd() 5.改变工作目录:os.chdir(newdir) 6.创建多级目录:os.makedirs(r"c:\python \test") 7.创建单个目录:os.mkdir("test") 8.删除多个目录:os.

python 队列模拟递归遍历目录(广度遍历)

import osimport collections def getAllDirQU(path): queue = collections.deque() #进队 queue.append(path) while len(queue) != 0: #出队数据 dirPath = queue.popleft() #找出所有的文件 filesList = os.listdir(dirPath) for fileName in filesList: #绝对路径 fileAbsPath = os.pa

Python复杂多重排序

1. cmp函数是python自带的函数,用于比较两个参数哪个大哪个小 print cmp(2, 3) # -1 print cmp(2, 1) # 1 print cmp(2, 2) # 0 如果第一个参数比第二个小,就返回-1,两个元素相等,返回0,否则返回1 2.所以就可以利用这个函数来自定义自己的比较规则 def cmp_country_size(country1, country2): alist = ['美国', '中国', '加拿大', '俄罗斯'] return cmp(alis

第十三章 对文本进行排序、单一和重复操作:sort命令、uniq命令

第十三章 对文本进行排序.单一和重复操作:sort命令.uniq命令 sort命令 名字解释 sort命令 它将文件进行排序,并将排序结果标准输出.sort命令即可以从特定的文件,也可以从stdin中获取输入. 语法 sort (选项) (参数) 选项 -b:忽略每行前面开始出的空格字符: -c:检查文件是否已经按照顺序排: -d:排序时,处理英文字母.数字及空格字符外,忽略其他的字符: -f:排序时,将小写字母视为大写字母: -i:排序时,除了040-176之间的ASCII字符外,忽略其他的字

Python遍历文件夹

许多次需要用python来遍历目录下文件, 这一次就整理了记录在这里. 随实际工作,不定期更新. 1 import os 2 3 class FileTraversal: 4 5 def __init__(self, rootpath): 6 7 self.rootpath = rootpath 8 9 #从顶至底的遍历(在剪短的代码里,我比较喜欢这清晰的变量名) 10 self.tracersal_from_top_to_down = True 11 12 #遍历发生错误的时候的回调函数 13

python遍历文件夹下的文件

在读文件的时候往往需要遍历文件夹,python的os.path包含了很多文件.文件夹操作的方法.下面列出: os.path.abspath(path) #返回绝对路径 os.path.basename(path) #返回文件名 os.path.commonprefix(list) #返回多个路径中,所有path共有的最长的路径. os.path.dirname(path) #返回文件路径 os.path.exists(path)  #路径存在则返回True,路径损坏返回False os.path

Python遍历文件夹和读写文件的方法

本文和大家分享的主要是python开发中遍历文件夹和读写文件的相关内容,一起来看看吧,希望对大家学习和使用这部分内容有所帮助. 需 求 分 析 1.读取指定目录下的所有文件 2.读取指定文件,输出文件内容 3.创建一个文件并保存到指定目录 实 现 过 程 Python写代码简洁高效,实现以上功能仅用了40行左右的代码~ 昨天用Java写了一个写入.创建.复制.重命名文件要将近60行代码: 不过简洁的代价是牺牲了一点点运行速度,但随着硬件性能的提升,运行速度的差异会越来越小,直到人类无法察觉~ #

python 遍历文件夹 文件

python 遍历文件夹 文件 import os import os.path rootdir = "d:\data" # 指明被遍历的文件夹 for parent,dirnames,filenames in os.walk(rootdir): #三个参数:分别返回1.父目录 2.所有文件夹名字(不含路径) 3.所有文件名字 for dirname in dirnames: #输出文件夹信息 print "parent is:" + parent print &q