AI办公自动化:批量根据文件标题名移动到对应文件夹中

2024-09-18 14:09:07 浏览数 (3)

某个文件夹中有很多个文件,现在想要根据文件标题名前面的股票名称,放入对应的子文件夹中。

在deepseek中输入提示词:

你是一个Python编程专家,要完成一个编写Python脚本的任务,具体步骤如下:

打开文件夹:“F:研报下载”

读取里面所有的doc、docx、pdf文件;

提取文件标题名中第一个符号“-”前面的字符,

和子文件夹名称进行比对,

如果一致,就把这些文件移动到对应的子文件夹中。

举个例子:

文件名为:开普云-2024-9-17-688228.SH-开普云 2023年年度报告-2024-04-20.pdf

提取到的字符为:开普云,那么将这个pdf文件移动到“开普云”这个文件夹中

注意:每一步都要输出信息到屏幕上

Deepseek的回复和源代码:

下面是一个完整的Python脚本,它实现了你描述的功能。脚本会打开指定的文件夹,读取所有的 .doc、.docx 和 .pdf 文件,提取文件标题中第一个符号“-”前面的字符,并与子文件夹名称进行比对。如果一致,则将文件移动到对应的子文件夹中。每一步都会输出信息到屏幕上。

import os

import shutil

# 定义文件夹路径

folder_path = "F:\研报下载"

# 获取文件夹中的所有文件和子文件夹

files = []

subfolders = []

# 遍历文件夹中的所有内容

for item in os.listdir(folder_path):

item_path = os.path.join(folder_path, item)

if os.path.isfile(item_path):

files.append(item)

elif os.path.isdir(item_path):

subfolders.append(item)

# 输出文件和子文件夹信息

print(f"Found {len(files)} files in the folder.")

print(f"Found {len(subfolders)} subfolders in the folder.")

# 遍历所有文件

for file in files:

# 检查文件扩展名是否为doc、docx或pdf

if file.endswith(('.doc', '.docx', '.pdf')):

# 提取文件名中第一个“-”前面的字符

file_name = os.path.splitext(file)[0]

title_prefix = file_name.split('-')[0]

# 输出提取的标题前缀

print(f"Extracted title prefix: {title_prefix} from file: {file}")

# 检查是否存在与标题前缀一致的子文件夹

if title_prefix in subfolders:

# 构建目标文件路径

target_folder = os.path.join(folder_path, title_prefix)

target_file_path = os.path.join(target_folder, file)

# 移动文件到目标文件夹

shutil.move(os.path.join(folder_path, file), target_file_path)

# 输出移动信息

print(f"Moved file: {file} to folder: {title_prefix}")

else:

# 输出未找到匹配子文件夹的信息

print(f"No matching subfolder found for file: {file}")

print("File organization complete.")

脚本说明:

文件夹路径:脚本首先定义了要处理的文件夹路径 folder_path。

获取文件和子文件夹:脚本遍历文件夹中的所有内容,将文件和子文件夹分别存储在 files 和 subfolders 列表中。

输出文件和子文件夹信息:脚本输出找到的文件和子文件夹的数量。

遍历文件:脚本遍历所有文件,检查文件扩展名是否为 .doc、.docx 或 .pdf。

提取标题前缀:对于符合条件的文件,脚本提取文件名中第一个“-”前面的字符,并输出提取的标题前缀。

检查子文件夹:脚本检查是否存在与标题前缀一致的子文件夹。如果存在,则将文件移动到对应的子文件夹中,并输出移动信息。如果不存在,则输出未找到匹配子文件夹的信息。

完成信息:脚本在完成文件组织后输出完成信息。

注意事项:

确保文件夹路径正确,并且文件夹中有足够的权限进行读写操作。

如果文件名中没有“-”符号,脚本会抛出异常,因此在实际使用中可能需要添加额外的错误处理。

如果文件名中包含多个“-”符号,脚本只会提取第一个“-”前面的字符。

程序运行结果:

0 人点赞