在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):