isdir()、listdir()、汇总多个文件夹内的照片
在Python中可以使用os.path.isdir()函数判断某一路径是否为目录
import os os.path.isdir(path)
在Python中可以使用os.path.isfile()函数判断某一路径是否为文件
import os os.path.isfile(path)
在Python中可以使用os.listdir()函数列出路径下的所有的文件
import os os.listdir(path)
例子:假设有一个总文件夹,在此文件夹下面有若干个子文件夹,每个子文件夹内都有若干张照片(可能包含其他文件类型的文件),我们要把这些照片全部放到一个新的文件夹内
import os
import shutil
# 指定总文件夹路径
total_folder = "path"
# 遍历总文件夹,获取子文件夹路径列表
# os.path.join()函数用于路径拼接文件路径,可以传入多个路径
# 判断总文件夹下的文件是否为文件夹
subfolders_list = [os.path.join(total_folder, subfolder) for subfolder in os.listdir(total_folder) if
os.path.isdir(os.path.join(total_folder, subfolder))]
# 照片最终放入的目标文件夹路径
target_folder = 'path'
# 遍历源文件夹
for folder in subfolders_list:
files = os.listdir(folder)
for file in files:
if file.endswith('.jpg') or file.endswith('.jpeg') or file.endswith('.png'): # 注意文件标识的大小写
source_path = os.path.join(folder, file) # 原来的图片路径
target_path = os.path.join(target_folder, file) # 计划存到的图片路径
shutil.copy(source_path, target_path) # 复制,前面必须为文件,后面为目录或者文件
print('照片已成功放置到目标文件夹中!')