Use os.listdir to get all file names under the folder;
Use for in to obtain the file names in the list in turn;
Get the suffix of the file name;
Determine whether the file is an image file;
If it is a picture file, put the file name into the picture name list;
Returns a list of summarized image names.
2.2 Code implementation
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 Output result
3. Get the sorted list of file names
3.1 Get the number in the file name
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 Output result
3.3 multiple loops to achieve name sorting
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 Output result
3.5 Use sorted with lambda to achieve
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)