文件自动归档整理

文件整理脚本说明与使用指南

概述

此脚本旨在根据文件类型自动整理指定目录中的文件,将它们移动到对应的文件夹中。它可以帮助用户快速分类和整理文档、图片、音乐、视频、压缩文件、网页文件和源代码文件。

个人博客

个人博客直达地址
网站不断完善中里面拥有大量的脚本,并且源码完全开放 欢迎纯白嫖。关注公众私信可免费写脚本

功能说明

1. 路径定义

脚本通过 argparse 模块获取用户指定的目录路径,并将其作为文件整理的目标目录。如果用户未指定路径,脚本将使用当前目录(./)作为默认路径。

2. 文件类型分类

脚本预先定义了几类文件类型,分别对应不同的扩展名,如文档文件(.log, .txt, .doc, .pdf 等)、图片文件(.png, .jpg, .jpeg 等)、音乐文件(.mp3, .wav 等)、压缩文件(.zip, .rar 等)、视频文件(.mp4, .mkv 等)、网页文件(.html, .css, .js 等)以及源代码文件(.py, .c, .cpp 等)。

3. 目标目录创建

脚本根据文件类型在目标目录中创建相应的子目录,如 DocumentsPicturesMusicVideo 等,用于存放对应类型的文件。如果这些目录已存在,脚本将跳过创建步骤。

4. 文件整理

脚本遍历目标目录中的所有文件,根据文件的扩展名将其移动到对应的子目录中。如果文件属于预定义的某一类,脚本会将其移动到对应的子目录中,例如音乐文件将移动到 Music 目录。

5. 清理空目录

在文件整理完成后,脚本将检查是否有空目录存在,并删除这些空目录,以保持目标目录的整洁。

6. 用户确认

在执行整理操作前,脚本会提示用户确认操作,用户可以选择继续执行或退出脚本。

使用说明

  1. 运行脚本

    • 打开终端或命令行工具,输入 python script_name.py <directory_path>,其中 <directory_path> 是你希望整理的目录路径。
    • 如果不指定路径,脚本将默认整理当前目录。
  2. 确认操作

    • 脚本将提示你是否继续操作,输入 y 继续执行整理,输入 n 退出脚本。
  3. 查看结果

    • 脚本执行完成后,目标目录中的文件将根据其类型移动到对应的子目录中。

注意事项

  • 路径输入:请确保输入的目录路径是正确且存在的,否则脚本无法正常执行。
  • 文件移动:脚本会将文件移动到相应的目录中,而不是复制。因此,整理过程中请确保文件未被占用或锁定。
  • 空目录清理:脚本会删除整理后未使用的空目录,如果有重要的空目录,请提前备份或注意保留。
  • 文件冲突:如果目录中存在同名文件,可能会覆盖已存在的文件,请在执行脚本前检查文件是否存在冲突。
import argparse
import os


# 定义路径
def path():
    parse = argparse.ArgumentParser(
        add_help=True, description="根据文件类型将文件整理到不同的目录")
    parse.add_argument('directory_path', type=str, default='./',
                       help="目录的绝对路径")
    return parse.parse_args().directory_path


# 文件类型分类
documents = ['.log', '.txt', '.doc', '.docx', '.md', '.pdf', '.wps']
picture = ['.png', '.jpg', 'jpeg', '.bmp']
music = ['.mp3', '.wav']
compressed = ['.zip', '.rar', '.tar', '.gz', '.bz2', '.xz']
video = ['.3gp', '.mov', '.mp4', '.mkv', '.srt', '.avi']
web = ['.html', '.css', '.js']
source = ['.py', '.c', '.cpp', '.java']

# 目标目录
directories = [path() + '/Compressed', path() + '/Documents',
               path() + '/Pictures', path() + '/Music', path() + '/Video', path() + '/Web', path() + '/Source-codes',]

# 确认
print("脚本将开始按文件类型进行整理")
print("您确定要继续吗?(y/n)")
flag = input('>>>')
if flag.lower() == 'y':
    try:
        # 创建目标目录
        for d in directories:
            os.mkdir(d)
    except FileExistsError:
        pass

    # 整理文件
    for files in os.listdir(path()):
        dot = (files.rfind('.'))
        if dot != 0 and dot != -1:
            if files[dot:].lower() in music:
                os.rename(path() + '/' + files, path() + '/Music/' + files)
            if files[dot:].lower() in picture:
                os.rename(path() + '/' + files, path() + '/Pictures/' + files)
            if files[dot:].lower() in documents:
                os.rename(path() + '/' + files, path() + '/Documents/' + files)
            if files[dot:].lower() in compressed:
                os.rename(path() + '/' + files, path() +
                          '/Compressed/' + files)
            if files[dot:].lower() in video:
                os.rename(path() + '/' + files, path() + '/Video/' + files)
            if files[dot:].lower() in web:
                os.rename(path() + '/' + files, path() + '/Web/' + files)
            if files[dot:].lower() in source:
                os.rename(path() + '/' + files, path() + '/Source-codes/' + files)    

    # 清理空目录
    for d in directories:
        if not os.listdir(d):  # 使用 not os.listdir(d) 检查目录是否为空
            os.rmdir(d)  # 删除空目录
else:
    print("退出")
    os.sys.exit(0)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

脚本小能手

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值