61 lines
2.1 KiB
Python
61 lines
2.1 KiB
Python
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) |