如何使用glob根据文件名中的数字按顺序读取文件



我必须使用循环读取文件夹中的文件才能执行进一步的操作。

代码格式

for file in glob.glob('SZ*.csv'):
...     print(file)

输出我得到

SZ1.CSV
SZ10.CSV
SZ11.CSV
SZ12.CSV
SZ13.CSV
SZ14.CSV
SZ15.CSV
SZ16.CSV
SZ17.CSV
SZ18.CSV
SZ19.CSV
SZ2.CSV
SZ20.CSV
SZ21.CSV
SZ22.CSV
SZ3.CSV
SZ4.CSV
SZ5.CSV
SZ6.CSV
SZ7.CSV
SZ8.CSV
SZ9.CSV

但我想根据文件名中的数字按顺序读取文件。

如何做到这一点?

您可以对其进行排序-

import re
sorted(glob.glob("SZ*.CSV"), key=lambda x: int(re.findall("[0-9]+", x)[0]))

尝试

import re
l = glob.glob('SZ*.CSV')
l.sort(key=lambda x: int(re.sub('[A-Z.]+', '', x)))
for file in l:
print(file)

最新更新