在日常工作中,我们经常会遇到这样一个问题:大量的文件被随意存放在同一个文件夹中,导致文件查找变得异常困难,甚至需要花费大量时间去手动整理。这种混乱的文件夹管理方式不仅影响了工作效率,也增加了出错的可能性。
不过,现在有了Python这个强大的自动化办公工具,我们可以轻松解决这个问题。通过编写简单的Python脚本,我们可以根据文件类型自动将文件分类,让文件夹变得井井有条。
import os
import shutil
def classify_files(directory, destination_directory, config):
"""
将目录下的文件按照配置中的后缀分类到不同的文件夹中。
Args:
- directory: 要分类的目录路径
- destination_directory: 分类后文件夹的目标路径
- config: 包含后缀、目标文件夹和操作标识的元组的配置列表
格式为 [('后缀1', '目标文件夹1', '移动/复制'), ('后缀2', '目标文件夹2', '移动/复制'), ...]
"""
# 遍历目录下的所有文件
for root, dirs, files in os.walk(directory):
for file in files:
# 获取文件的绝对路径
file_path = os.path.join(root, file)
# 获取文件后缀
_, extension = os.path.splitext(file)
extension = extension.lower() # 统一转换为小写
# 在配置列表中查找后缀对应的配置项
for ext, dest, action in config:
if extension == ext:
destination_folder = os.path.join(destination_directory, dest)
# 如果目标文件夹不存在,则创建它
if not os.path.exists(destination_folder):
os.makedirs(destination_folder)
# 执行移动或复制操作
if action == '移动':
shutil.move(file_path, destination_folder)
elif action == '复制':
shutil.copy(file_path, destination_folder)
if __name__ == "__main__":
# 配置文件后缀、目标文件夹和操作标识的元组列表
file_extension_config = [
('.txt', 'TextFiles', '移动'),
('.jpg', 'ImageFiles', '复制'),
('.png', 'ImageFiles', '复制'),
('.jpeg', 'ImageFiles', '移动'),
('.mp3', 'AudioFiles', '移动'),
('.mp4', 'AudioFiles', '复制')
# 可以根据需要扩展更多的后缀、目标文件夹和操作标识的元组
]
# 要分类的目录路径
source_directory = "D:\\AI\\massdir"
# 分类后文件夹的目标路径
destination_directory = "./path/classify"
if not os.path.exists(destination_directory):
os.makedirs(destination_directory)
# 调用分类函数
classify_files(source_directory, destination_directory, file_extension_config)
代码运行效果
整理前
整理后
当然,这个脚本只是一个简单的示例,你可以根据自己的需求进行灵活配置。比如,你可以根据需要添加更多的文件类型,或者将文件移动到目标文件夹而不是复制。此外,你还可以考虑添加一些错误处理的逻辑,以处理可能出现的异常情况。
总之,通过Python自动化办公,我们可以轻松实现文件自动分类,让工作变得更加高效和有序。只需要几行简单的代码,就能告别混乱的文件夹,享受更加愉快的办公体验!