0 python sorting operating-system
我有一个包含许多按特定顺序命名的文本文件的目录:
0.txt
1.txt
2.txt
....
100.txt
101.txt
.....
40000.txt
Run Code Online (Sandbox Code Playgroud)
当我尝试检索我使用的所有文件的排序列表时:
for file in sorted(os.listdir(filepath)):
print(file)
Run Code Online (Sandbox Code Playgroud)
我得到的结果是:
0.txt
1.txt
10.txt
100.txt
1000.txt
10000.txt
10001.txt
10002.txt
10003.txt
10004.txt
.....
Run Code Online (Sandbox Code Playgroud)
这不是我想要的,我想要它按正常升序排列:
0.txt
1.txt
2.txt
3.txt
4.txt
...
Run Code Online (Sandbox Code Playgroud)
有谁知道如何做到这一点?
可以使用 lambda 表达式
import os
filelist = os.listdir(path)
filelist = sorted(filelist,key=lambda x: int(os.path.splitext(x)[0]))
for file in filelist:
print(file)
Run Code Online (Sandbox Code Playgroud)
输出为:
1.txt
2.txt
3.txt
4.txt
5.txt
6.txt
7.txt
8.txt
9.txt
10.txt
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7093 次 |
| 最近记录: |