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

火山方舟向量数据库大模型

在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,避免路径问题。

picture.image

运行程序,成功完成任务

0
0
0
0
关于作者

文章

0

获赞

0

收藏

0

相关资源
云原生机器学习系统落地和实践
机器学习在字节跳动有着丰富业务场景:推广搜、CV/NLP/Speech 等。业务规模的不断增大对机器学习系统从用户体验、训练效率、编排调度、资源利用等方面也提出了新的挑战,而 Kubernetes 云原生理念的提出正是为了应对这些挑战。本次分享将主要介绍字节跳动机器学习系统云原生化的落地和实践。
相关产品
评论
未登录
看完啦,登录分享一下感受吧~
暂无评论