以数字顺序读取文件名而不是使用 glob 的 ASCI 排序?

Read file name in numerical order as opposed to ASCI ordering using glob?

我有一个文件列表如下:

file1.png
file2.png
...
file9.png
file10.png
file11.png
...
file99.png
file100.png
file101.png
...

当我使用此代码读取目录时:

images = [file for file in glob.glob(image_dir + '*')]

我得到一个输出,其中文件名排序如下:

[image_dir/file1.png
image_dir/file10.png
image_dir/file100.png
image_dir/file101.png
... 
image_dir/file109.png
image_dir/file11.png
image_dir/file110.png
...
image_dir/file119.png
image_dir/file12.png
image_dir/file120.png
...]

如何按正确的数字顺序获取文件?

尝试使用:

print(sorted(images, key=lambda x: int(x.split('file')[-1].split('.')[0])))