我正在使用一个程序,该程序根据从目录中读取文件的顺序将输出写入 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/