1.通过pycharm(python3.8)[不会的去查csdn]实现以下代码,将json转换为txt。
import json
def convert_to_clean_txt(json_path, output_txt_path): # 读取JSON文件(自动处理编码) with open(json_path, 'r', encoding='utf-8') as f: data = json.load(f) # 提取有效翻译内容
clean_lines = [] for item in data: # 过滤条件:dst字段存在+非空+包含中文+非元数据行
if item.get('dst') and item['dst'].strip(): # 排除示例中的干扰行(如"Information"和URL)
if not any(exclude in item['dst'] for exclude in ['Information', 'URL:', 'Table of Contents']): # 移除JSON中的转义字符
clean_text = item['dst'].replace('\\n', '\n')
clean_lines.append(clean_text) # 保存为纯文本(带BOM头解决记事本乱码)
with open(output_txt_path, 'w', encoding='utf-8-sig') as f: f.write('\n\n'.join(clean_lines)) # 段落间用空行分隔# 使用示例convert_to_clean_txt("items.json", "clean_translation.txt")
2.同样通过pycharm实现以下代码,对章节进行划分[前提是查看转换为txt文件后的内容中是否有能划分章节的关键词,例如「第xx章」],实现创建新的文件夹包含所有划分完后的章节。
import os
import re
def split_novel_chapters(input_file, output_dir): # 确保输出目录存在 os.makedirs(output_dir, exist_ok=True) # 读取整个文本文件 with open(input_file, 'r', encoding='utf-8') as f:
content = f.read() # 构建正则表达式模式,匹配章节分割线,关键词看实际情况
pattern = r'第(\d+)话' # 提取每个章节的起始和结束位置
chapter_starts = [m.start() for m in matches]
chapter_ends = chapter_starts[1:] + [len(content)] # 分割并保存每个章节 for i, match in enumerate(matches): chapter_num = match.group(1) start_idx = chapter_starts[i] end_idx = chapter_ends[i] # 提取章节内容 chapter_content = content[start_idx:end_idx].strip() # 生成输出文件名(三位数格式) output_file = os.path.join(output_dir, f"{int(chapter_num):03d}.txt") # 写入章节内容
with open(output_file, 'w', encoding='utf-8') as f: f.write(chapter_content)
print(f"已保存章节 {chapter_num} 到 {output_file}")# 使用示例
if __name__ == "__main__":
input_file = "clean_translation.txt" # 替换为您的输入文件名
output_dir = "partitions" # 输出目录名
split_novel_chapters(input_file, output_dir)
print(f"所有章节已保存到 {output_dir} 目录!")
————BY:Zhengs.
注意换行以及缩进,不会的去问ai,模板为“将以下代码整理为标准模式”,以及包(no modele)的问题,主要是下载,去问csdn
具体成果例子可以看 在逆转世界里,我是她们的猎物?