使用python来进行文件归档,扫描当前目录下的所有文件及文件夹内的所有文件进行归档,把命名为 12345646.jpg,12345646.png,12345646.pdf归到按命名新建的12345646文件夹,以此类推 把22345646.jpg,22345646.png,22345646.pdf归到按命名新建的22345646文件夹

需要扫描当前目录下或指定目录下的所有文件及文件夹内的所有文件进行归档,把命名为 12345646.jpg,12345646.png,12345646.pdf归到按命名新建的12345646文件夹,以此类推 把22345646.jpg,22345646.png,22345646.pdf归到按命名新建的22345646文件夹.
先建一个py文件:changeFile.py,所以如果是在当前目录下进行归档时我们需要排除changeFile.py这个文件不进行归档操作:

import os
import shutil

def organize_files_by_name(root_dir):
    created_dirs = set()  # 记录已创建的目录
    
    # 使用os.walk()递归遍历目录树
    for root, dirs, files in os.walk(root_dir):
        for file in files:
            # 检查文件名,跳过指定的文件
            if file == 'changeFile.py':
                continue
            
            # 提取文件名(不包含扩展名)
            base_name = os.path.splitext(file)[0]
            
            # 构建目标子目录的完整路径
            target_dir = os.path.join(root, base_name)
            
            # 如果目录还未创建,则创建之,并加入到已创建目录的集合中
            if target_dir not in created_dirs:
                os.makedirs(target_dir, exist_ok=True)
                created_dirs.add(target_dir)
            
            # 构建源文件和目标文件的完整路径
            src_file = os.path.join(root, file)
            dst_file = os.path.join(target_dir, file)
            
            # 尝试移动文件到子目录
            try:
                shutil.move(src_file, dst_file)
                print(f"Moved {file} from {root} to {target_dir}")
            except Exception as e:
                print(f"Error moving {file}: {e}")

# 当前目录作为起始点
current_directory = '.'
# 如果是指定目录
# current_directory = '指定目录路径'

# 执行文件组织
organize_files_by_name(current_directory)

  

posted @ 2024-07-17 16:33  智昕  阅读(25)  评论(0)    收藏  举报