import os
# 获取文件夹中的所有图片文件
def get_all_image_name(path):
names = os.listdir(path)
images = []
for name in names:
suffix = name.split('.').pop()
if suffix in ['jpg', 'png', 'jpeg', 'bmp']:
images.append(name)
return images
if __name__ == "__main__":
image_names = get_all_image_name('./images')
print('image_names:',image_names)
2.3 输出结果
3. 获取排序后的文件名称列表
3.1 获取文件名称中的数字
import os
import re
# 获取文件夹中的所有图片文件
def get_all_image_name(path):
names = os.listdir(path)
images = []
for name in names:
suffix = name.split('.').pop()
if suffix in ['jpg', 'png', 'jpeg', 'bmp']:
images.append(name)
return images
# 获取排序后的文件名称
def sort_names(names):
for name in names:
print(int(re.sub('\D', '', name)))
if __name__ == "__main__":
image_names = get_all_image_name('./images')
print('image_names:',image_names)
sort_names(image_names)
3.2 输出结果
3.3 多次循环实现名称排序
import os
import re
# 获取文件夹中的所有图片文件
def get_all_image_name(path):
names = os.listdir(path)
images = []
for name in names:
suffix = name.split('.').pop()
if suffix in ['jpg', 'png', 'jpeg', 'bmp']:
images.append(name)
return images
# 获取排序后的文件名称
def sort_names(names):
nums = []
for name in names:
nums.append(int(re.sub('\D', '', name)))
# 排序
nums.sort()
last_names = []
for num in nums:
for name in names:
if num == int(re.sub('\D', '', name)):
last_names.append(name)
return last_names
if __name__ == "__main__":
image_names = get_all_image_name('./images')
print('image_names:',image_names)
sort_images = sort_names(image_names)
print('sort_images:',sort_images)
3.4 输出结果
3.5 使用 sorted 配合 lambda 实现
import os
import re
# 获取文件夹中的所有图片文件
def get_all_image_name(path):
names = os.listdir(path)
images = []
for name in names:
suffix = name.split('.').pop()
if suffix in ['jpg', 'png', 'jpeg', 'bmp']:
images.append(name)
return images
# 获取排序后的文件名称
def sort_names(names):
last_names = list(sorted(names, key=lambda x:(int(re.sub('\D', '', x)),x)))
return last_names
if __name__ == "__main__":
image_names = get_all_image_name('./images')
print('image_names:',image_names)
sort_images = sort_names(image_names)
print('sort_images:',sort_images)