如何按数字对文件进行排序?

2024-02-27

我正在处理目录中的一些文件,需要对文件进行数字排序。我发现了一些关于排序的例子——特别是使用lambda模式—在wiki.python.org http://wiki.python.org/moin/HowTo/Sorting,我把它放在一起:

import re

file_names = """ayurveda_1.tif
ayurveda_11.tif
ayurveda_13.tif
ayurveda_2.tif
ayurveda_20.tif
ayurveda_22.tif""".split('\n')

num_re = re.compile('_(\d{1,2})\.')

file_names.sort(
    key=lambda fname: int(num_re.search(fname).group(1))
)

有一个更好的方法吗?


这称为“自然排序”或“人工排序”(与默认的字典排序相反)。Ned B 写了一个快速版本。 http://nedbatchelder.com/blog/200712/human_sorting.html

import re

def tryint(s):
    try:
        return int(s)
    except:
        return s

def alphanum_key(s):
    """ Turn a string into a list of string and number chunks.
        "z23a" -> ["z", 23, "a"]
    """
    return [ tryint(c) for c in re.split('([0-9]+)', s) ]

def sort_nicely(l):
    """ Sort the given list in the way that humans expect.
    """
    l.sort(key=alphanum_key)

它与您正在做的类似,但可能更普遍一些。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何按数字对文件进行排序? 的相关文章

随机推荐

  • 从 Joda 时间库迁移到 Java 时间(Java 8)

    我正在尝试从 Joda 时间库迁移到 Java 时间 Java 8 我无法找到相当于ISODateTimeFormat dateOptionalTimeParser in java time Joda ISO 格式化程序有很好的解析器 IS
  • Google 图表工具截断 y 轴标签

    与一个谷歌条形图 http code google com apis chart interactive docs gallery barchart html 这是我得到的 这是我的自定义选项 var options width 500 h
  • 当字符串列内容比已有内容长时,HDFStore.append(string, DataFrame) 失败

    我有一个通过 HDFStore 存储的 Pandas DataFrame 它本质上存储有关我正在执行的测试运行的摘要行 每行中的几个字段包含可变长度的描述性字符串 当我进行测试运行时 我创建一个新的 DataFrame 其中包含一行 def
  • 如何在 Angularjs 中刷新控制器?

    我正在为一个应用程序使用 Ionic Framework 并且只专注于其中一个部分 在我的应用程序中 我有一个收藏夹视图 它显示用户在应用程序中其他地方收藏的项目列表 问题是 控制器中的代码仅在第一次点击收藏夹路由时运行一次 如果用户随后在
  • 如何在没有共同历史的情况下将分支合并到 GIthub 上的主分支

    我想从 Github 上不受我控制的远程存储库克隆一个特定分支 然后我想将其推送到我在 Github 上控制的存储库 在 Github UI 上 我在我的帐户下创建了我控制的新存储库 然后 我将我无法控制的远程存储库分支克隆到本地计算机上
  • Pyinstaller 和 cython 应用程序文件太大

    我正在创建可以在我的笔记本电脑上运行而无需安装 Python 的可执行文件 下面的工作完美 pyinstaller r file a so dll file a so r file b so dll file b so F bin hell
  • Vue.js - 更改我动态创建的未定义的 img 源

    我正在使用 vue js 和第 3 方 API 我已经成功获取到了json数据并在我的 html 中呈现它 但我正在努力处理图像 部分图片缺失json文件 所以我将它们本地存储在我的笔记本电脑中 我尝试在 html 中使用 v if 设置空
  • 如何在配置阶段使用相邻子项目中的类

    我想编译一个子项目 然后将这些类放在类路径中建造时另一个子项目 自定义塔斯将使用第一个塔斯创建的类 目前我正在尝试 buildscript dependencies classpath project MyOtherProject 结果如下
  • 在 Oracle 中始终获得小数点后两位的最佳方法是什么?

    在 Oracle 返回的值中始终保留 2 位小数的最佳方法是什么 目前我正在将所有与数据库相关的 PHP 函数包装在number format等等 但我想将它们直接移到 SQL 查询中 更好的是 当我连接到 Oracle 时 是否可以设置一
  • SQL查询自动转换为ElasticSearch查询

    我有一项当前将数据存储在 Oracle DB 中的服务 我正在开发一个项目 我需要运行一组 sql 查询来获取一些聚合数据 我想将这些查询存储在一个地方 我可以对其进行迭代并获取所需的数据 比如说 我今天有 10 个疑问 但是 我可以继续添
  • 将旧服务器上的“错误”MySQL 编码转换为新服务器上的正确 UTF-8

    我在 Web 服务器上设置了一个 Web 项目 编码明显错误 但不知何故 我真的不知道为什么 我们想出了如何处理它并且编码对我们有用 但现在我们将数据移动到具有正确设置的 UTF8 数据库的新服务器 令人惊讶的是 编码是错误的 我们如何 纠
  • 如何清空原始数组?

    我有以下课程 public class Person private String id private Score scores public Person getters and setters etc 我怎样才能最好地删除所有Scor
  • awk 如何将 unix 命令的结果作为参数?

    假设有一个带有制表符分隔字段的输入文件 第一个字段是整数 1 abc 1 def 1 ghi 1 lalala 1 heyhey 2 ahb 2 bbh 3 chch 3 chchch 3 oiohho 3 nonon 3 halal 3
  • 在 Windows UWP 应用程序中将 Python 与 C# 一起使用

    我开始使用 Python 编写应用程序 但现在想切换到 C 和 UWP 我知道您无法使用 Python 编写 UWP 应用程序 但我正在尝试查看是否可以使用 Python 编写一些代码并从 C 访问该代码 例如 用 Python 编写一个
  • 将 BPMN 2.0 XML 导入 MS Visio 2010 或从 MS Visio 2010 导出 [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我想将 BPMN 图表从 Visio 2010 Premium 导出为 BPMN 2 0 XML 格式
  • 从 noflo 开始,从 nodejs 运行它

    我运行了一个简单的 noflo 示例来自诺弗洛 但我没有弄清楚 noflo 应该如何与节点和其他代码一起工作 起初我有这个 fbp 文件 In the graph we first need to define the nodes and
  • 非关联浮点加法示例

    我正在写一篇关于浮点数的文章 我在 Javascript 控制台中放入了一些简单的测试来尝试 我正在寻找非交换加法的示例 即 x y z z x y 如果您有一些有效的 x y z 值 谢谢 没有这样的例子 因为按照 IEEE 754 的定
  • 为什么在此示例中并行版本比顺序版本慢?

    在过去的几天里 我学习了一些关于并行性的知识 并且遇到了this http msdn microsoft com en us library dd460703 aspx例子 我将它与顺序 for 循环并排放置 如下所示 private st
  • Jenkins 作业窗口批量执行比 cmd.exe 中执行慢 20 倍

    我刚刚在 Windows 2012 Server o 上安装了 Jenkins 2 46 2 它作为系统服务运行 我创建了一个执行 Windows 批处理 bat 脚本来构建代码项目的作业 此批处理会执行 2 个 mingw32 make
  • 如何按数字对文件进行排序?

    我正在处理目录中的一些文件 需要对文件进行数字排序 我发现了一些关于排序的例子 特别是使用lambda模式 在wiki python org http wiki python org moin HowTo Sorting 我把它放在一起 i