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

2024-04-23 08:16:46 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用一个程序,该程序根据从目录中读取文件的顺序将输出写入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脚本来完成此操作?


Tags: 文件csv程序目录txt脚本图形string
3条回答

对程序中的文件列表进行排序。不要依赖操作系统调用以正确的顺序提供文件,这取决于实际使用的文件系统。

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']
  1. 使用os.listdir获取文件名列表。
  2. 使用natural sort order对列表排序。
  3. 按排序列表的顺序处理文件。

相关问题 更多 >