import os def rename_files(list_file, data_dir): """ 重命名文件 Args: list_file: 存放 novel_id 和 novel_name 的文件路径 data_dir: 需要重命名文件的目录 """ # 读取列表文件,构建一个字典,key为novel_name,value为novel_id id_dict = {} with open(list_file, 'r', encoding='utf-8') as f: for line in f: novel_id, novel_name = line.strip().split('\t') id_dict[novel_name] = novel_id # 遍历 data 目录下的所有文件 for root, dirs, files in os.walk(data_dir): for file in files: if file.endswith('.txt'): # 获取文件名(不含扩展名) novel_name = file[:-4] # 判断文件名是否在字典中 if novel_name in id_dict: old_file = os.path.join(root, file) new_file = os.path.join(root, f"{id_dict[novel_name]}_{novel_name}.txt") os.rename(old_file, new_file) print(f"Renamed {old_file} to {new_file}") def check_and_record(data_dir, search_string, output_file): """ 检查文件内容并记录 Args: data_dir: 需要检查的目录 search_string: 需要搜索的字符串 output_file: 记录结果的文件 """ with open(output_file, 'w', encoding='utf-8') as output: for root, dirs, files in os.walk(data_dir): for file in files: if file.endswith('.txt'): novel_name = file[:-4] file_path = os.path.join(root, file) with open(file_path, 'r', encoding='utf-8', errors='ignore') as f: if search_string in f.read(): output.write(novel_name + '\n') print(f"need update: {novel_name}") if __name__ == '__main__': # rename_files("aabook_down_list.txt", "data") data_dir = "data" search_string = "2005-2024 疯情书库" output_file = "aabook_need_update.txt" check_and_record(data_dir, search_string, output_file)