是对设置的文件路径下的文件进行划分,根据划分规则划分文件后将移动到对应的文件夹中。如果文件夹不存在,则会在设置的文件路径下自动创建。
import os
import shutil
# 设置文件路径
file_path = r""
# 遍历目录下的所有文件
for file_name in os.listdir(file_path):
# 判断当前路径是否为文件夹
if os.path.isdir(os.path.join(file_path, file_name)):
continue
# 获取文件名和扩展名
name, ext = os.path.splitext(file_name)
# 用切片根据文件名判断文件类型
# 使用了切片出的前五个字符来作为文件夹的名称,并将文件移动到对应的文件夹中。
type_str = name[:5]
folder_path = os.path.join(file_path, type_str)
# 用split根据文件名判断文件类型
# 使用split函数以符号“_”作为分隔符,将文件名分割成多个字符串,然后使用第一个字符串作为文件夹名称。
# type_str = name.split("_")[0]
# folder_path = os.path.join(file_path, type_str)
# 如果文件夹不存在,则创建
if not os.path.exists(folder_path):
os.mkdir(folder_path)
# 拼接文件路径
file_path_new = os.path.join(folder_path, file_name)
# 判断目标路径中是否已经存在同名文件
if os.path.exists(file_path_new):
print(f"File {file_name} already exists in folder {type_str}")
else:
# 移动文件到对应的文件夹中
shutil.move(os.path.join(file_path, file_name), file_path_new)
print(f"File {file_name} moved to folder {type_str}")