部署DeepSeek模型,进群交流最in玩法!
立即加群
发布
社区首页 >专栏 >Deepseek批量删除文件标题名的部分字符串

Deepseek批量删除文件标题名的部分字符串

作者头像
AIGC部落
发布2025-02-06 20:15:16
发布2025-02-06 20:15:16
770
举报
文章被收录于专栏:Dance with GenAIDance with GenAI

在Deepseek中输入提示词:

写一个Python脚本,

搜索本地电脑中这几个文件夹:"F:\图书";"F:\股票投资类图书";"F:\有声英文书";"D:\downloads"

查找后缀为azw3、epub、pdf、mobi的电子书文件;

如果电子书文本标题名的末尾包括这些字符串:“libgen.li”、“Anna’s Archive”、“(Z-Library)”,那么就删掉,重命名文件;

举几个例子:

原文件标题:[年度图书 科学新知 _6] 吴军 - 吴军数学通识讲义 (2021) - libgen.li.epub

重命名后的标题:[年度图书 科学新知 _6] 吴军 - 吴军数学通识讲义 (2021) - .epub

原文件标题:“错误”的行为:行为经济学的形成 ([美]理查德·塞勒) (Z-Library).epub

重命名后的标题:“错误”的行为:行为经济学的形成 ([美]理查德·塞勒) .epub

原文件标题:AI Startup Strategy_ A Blueprint to Building Successful -- Adhiguna Mahendra -- 1, 2023 -- Apress -- 9781484295014 -- 5fd222490bd5dbb2cbdfd3fdd5964b0a -- Anna’s Archive.pdf

重命名后的标题:AI Startup Strategy_ A Blueprint to Building Successful -- Adhiguna Mahendra -- 1, 2023 -- Apress -- 9781484295014 -- 5fd222490bd5dbb2cbdfd3fdd5964b0a -- Anna’s Archive.pdf

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

如果文件路径中包含非法字符(例如 : 和 --),会导致操作系统无法正确识别路径。Windows 文件系统中,文件名不能包含某些特殊字符(如 :),而 -- 虽然合法,但在某些情况下可能会导致问题。我们需要在重命名文件时,清理文件名中的非法字符,并确保路径正确。

Deepseek生成的Python源代码:

import os

import re

# 定义要搜索的文件夹路径

folders_to_search = [

r"F:\图书",

r"F:\股票投资类图书",

r"F:\有声英文书",

r"D:\downloads"

]

# 定义要查找的文件后缀

file_extensions = ['.azw3', '.epub', '.pdf', '.mobi']

# 定义要删除的字符串

strings_to_remove = ['libgen.li', 'Anna’s Archive', '(Z-Library)']

# 定义非法字符(Windows 文件系统中不允许的字符)

illegal_chars = ['<', '>', ':', '"', '/', '\\', '|', '?', '*']

def clean_filename(filename):

# 去除非法字符

for char in illegal_chars:

filename = filename.replace(char, '')

# 去除多余的空格和连字符

filename = re.sub(r'\s+', ' ', filename).strip()

filename = re.sub(r'-+', '-', filename).strip()

return filename

def rename_file(file_path):

# 获取文件名和扩展名

file_dir, file_name = os.path.split(file_path)

file_base, file_ext = os.path.splitext(file_name)

# 检查文件名末尾是否包含需要删除的字符串

for string in strings_to_remove:

if file_base.endswith(string):

# 删除字符串并重命名文件

new_file_base = file_base[:-len(string)].rstrip()

new_file_base = clean_filename(new_file_base) # 清理文件名

new_file_name = f"{new_file_base}{file_ext}"

new_file_path = os.path.join(file_dir, new_file_name)

# 重命名文件

try:

os.rename(file_path, new_file_path)

print(f"重命名文件: {file_name} -> {new_file_name}")

return True

except Exception as e:

print(f"重命名失败: {file_name} -> {new_file_name},错误: {e}")

return False

return False

def search_and_rename_files(folder):

for root, dirs, files in os.walk(folder):

for file in files:

if any(file.endswith(ext) for ext in file_extensions):

file_path = os.path.join(root, file)

print(f"找到文件: {file_path}")

if rename_file(file_path):

print(f"文件已重命名: {file_path}")

else:

print(f"无需重命名: {file_path}")

def main():

for folder in folders_to_search:

if os.path.exists(folder):

print(f"正在搜索文件夹: {folder}")

search_and_rename_files(folder)

else:

print(f"文件夹不存在: {folder}")

if __name__ == "__main__":

main()

清理文件名:

新增 clean_filename 函数,用于去除文件名中的非法字符(如 :)以及多余的空格和连字符。

在重命名文件时调用 clean_filename,确保生成的文件名合法。

错误处理:

在 os.rename 操作中添加了 try-except 块,捕获并输出可能的错误信息。

路径处理:

确保路径拼接时使用 os.path.join,避免路径问题。

运行程序,成功完成任务

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2025-02-05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Dance with GenAI 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档