python - 如何在读取之前对目录中的文件进行排序?

标签 python sorting file-io

我正在使用一个程序,该程序根据从目录中读取文件的顺序将输出写入 csv 文件。但是,有大量文件以 1、2、3、4、5、6、7、8、9、10、11、12 结尾。我的程序实际上按照我猜的字母顺序读取文件:1,10,11,12.....,2,20,21.....99。问题是另一个程序假设排序是数字排序,并歪曲了图形结果。

实际文件看起来像:String.ext.ext2.1.txt、String.ext.ext2.2.txt,等等...

如何使用 python 脚本执行此操作?

最佳答案

files = ['String.ext.ext2.1.txt', 'String.ext.ext2.12.txt', 'String.ext.ext2.2.txt']
# files: coming from os.listdir() sorted alphabetically, thus not numerically

sorted_files = sorted(files, key=lambda x: int(x.split('.')[3]))
# returns: ['String.ext.ext2.1.txt', 'String.ext.ext2.2.txt', 'String.ext.ext2.12.txt']

关于python - 如何在读取之前对目录中的文件进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6743407/

相关文章:

python - 大型二维掩码数组的插值

javascript - 按子数组属性/值对 JavaScript 对象数组进行排序

c++ - 尝试选择排序实现时*有时*出现段错误

c - 如何使用 C 中的指针对大小未知的数字数组进行排序

c - c 中的两个流相互干扰

python - 如何让python在将字符串写入文件时使用双引号

python - 如何对德语文本进行 POS 标记?

python - 如何在Pythons Scikit-Learn中组合多种特征选择方法

python - 从 Pandas 数据框向(大)SQLite 数据库添加一个额外的列

Java删除不删除