首页 > 编程语言 >Python自动整理文件夹

Python自动整理文件夹

时间:2024-09-27 14:51:47浏览次数:12  
标签:文件 target Python 文件夹 自动 file path os dir

编写一个Python脚本来遍历指定目录下的所有文件,根据文件的扩展名来创建相应的子文件夹(如果尚不存在的话),然后将文件移动到对应的子文件夹中。同时,我们需要处理重名文件的问题,通过在文件名后添加_和数字来区分。

下面是一个实现这个功能的Python脚本示例:

import os
import shutil

def move_files_by_extension(directory):
    # 遍历指定目录
    for root, dirs, files in os.walk(directory):
        for file in files:
            # 获取文件的完整路径
            file_path = os.path.join(root, file)
            # 获取文件扩展名
            extension = os.path.splitext(file)[1][1:]  # 去掉点号
            
            # 构造目标子目录路径
            target_dir = os.path.join(root, extension)
            
            # 如果目标子目录不存在,则创建
            if not os.path.exists(target_dir):
                os.makedirs(target_dir)
            
            # 构造目标文件路径
            target_file_path = os.path.join(target_dir, file)
            
            # 如果目标文件已存在,则处理重名问题
            if os.path.exists(target_file_path):
                # 生成新的文件名,添加_1, _2等以区分重名文件
                counter = 1
                new_file_name = f"{os.path.splitext(file)[0]}_{counter}{os.path.splitext(file)[1]}"
                while os.path.exists(os.path.join(target_dir, new_file_name)):
                    counter += 1
                    new_file_name = f"{os.path.splitext(file)[0]}_{counter}{os.path.splitext(file)[1]}"
                target_file_path = os.path.join(target_dir, new_file_name)
            
            # 移动文件
            shutil.move(file_path, target_file_path)
            print(f"Moved {file_path} to {target_file_path}")

# 使用示例
directory_path = '/path/to/your/directory'
move_files_by_extension(directory_path)

注意事项

  1. 请将directory_path替换为你想要遍历的目录的路径。
  2. 该脚本会递归遍历指定目录及其所有子目录。
  3. 如果目标文件夹已经存在,脚本将不会重新创建它,直接使用该文件夹。
  4. 如果目标文件夹中已存在同名文件,脚本将通过在文件名后添加_和递增的数字来重命名文件。
  5. 使用shutil.move()函数来移动文件,这个函数如果目标路径已经存在同名文件,则会抛出FileExistsError异常。为了避免这种情况,脚本会先检查目标文件是否存在,并相应地重命名新文件。
  6. 脚本会打印出每个被移动文件的原路径和目标路径,以便于追踪和调试。

标签:文件,target,Python,文件夹,自动,file,path,os,dir
From: https://blog.csdn.net/m0_54490473/article/details/142503008

相关文章

  • 自动化办公-python中的open()函数
    Python中的open()函数用于打开一个文件,并返回一个文件对象,您可以通过该对象对文件进行读写操作。基本语法:open(file,mode='r',buffering=-1,encoding=None,errors=None,newline=None,closefd=True,opener=None)参数说明:file:要打开的文件路径(字符串)。可以是......
  • python爬虫案例——抓取三级跳转网页,实现逐页抓取,数据存入mysql数据库(10)
    文章目录1、目标任务2、网页分析3、完整代码1、目标任务目标站点:情话网(http://www.ainicr.cn/tab/)任务:抓取该网站下所有标签下的所有情话语句,并将其存入mysql数据库2、网页分析用浏览器打开网页,按F12或右键检查,进入开发者模式,在Network-Doc下找到网页的数......