重要的放前面:
软件功能如题,这里是我自己用Pyinstaller打包的exe,文末附有python脚本代码。
exe启动的时候有详细的使用说明,你可以直接把EPUB文件或者装有EPUB文件的文件夹拖进去,然后它就会在文件所在的位置生成带有“_简中”后缀的新文件,不会替换旧文件,放心使用。
-------------------------------------------
通过百度网盘分享的文件:繁体改简体.exe
链接:https://pan.baidu.com/s/17-_HQC9fkFRFVY-92RG1xQ?pwd=od69
提取码:od69
-----------------------------------------
当然还是遇到了一些无法解决的问题,不同软件对EPUB的读取方式不太一样,处理之后的文件,用微信读书打开的时候会丢失扉页,用WPS打开时,WPS无法自动添加首行缩进。另外还有例如“着”的繁体字是“著”,而“著”本身也是个简体字,所以它没被替换。
正文是一些,嗯……,我也不知道该算啥,看代码可以直接看最后面,问题展示也在正文部分。说起来我一直不会小黑盒的排版,乱的让人难受。
以下是正文
近期看到网友分享让deepseek角色扮演的角色定义指令,尘封多年的赫萝一下就把我脑子占满了,再三尝试,定义出来的赫萝终究不如动漫中的动人心弦,也许我想看的是赫萝和罗伦斯的故事,而不是把我当成罗伦斯的赫萝,或者,失去罗伦斯许久的赫萝……于是我准备N刷,然后我惊喜的发现狼与香辛料2024年翻新了,而且新的制作组准备把小说出完,我的天呐,我们狼与香辛料粉丝吃的实在是太好了,怀着忐忑的心情,看完新作,和08版比起来有很多可圈可点的地方,新的制作组真的懂现在的大伙儿喜欢看什么,赫萝非常可爱,不过比起旧版少了一些氛围感,小清水亚美的配音也和以前有写不一样了(没办法,16年了啊),还把赫萝画的跟个二哈一样,有些紧张的情节看到二哈就紧张不起来了。
24版赫萝狼形态
08版赫萝狼形态
然后二刷完的我就去看小说了,结果下载了一堆打开发现是繁体,可能因为我在国外的原因,于是我就写了个脚本用来把繁体转为简体:
问题展示:
用WPS打开时,WPS无法自动添加首行缩进。
原版WPS打开时加上了段首缩进
修改后WPS打开时没有段首缩进
微信读书丢失扉页:
扉页
丢失的扉页
最后是代码部分
程序简介:
os: 处理文件和目录路径
lxml.etree: 解析XML/HTML内容(虽然代码中未直接使用,但ebooklib依赖)
ebooklib: 读写EPUB文件的核心库
ITEM_DOCUMENT: 标识EPUB中的文本内容项
OpenCC: 中文简繁转换库
处理流程:字节流 → UTF-8解码 → 简繁转换 → UTF-8编码
解析EPUB文件结构→遍历所有内容项→只处理HTML/XHTML文档(跳过图片/CSS等)→逐文件进行简繁转换→保存新EPUB文件
代码如下:
显然小黑盒把我排好的版都弄乱了,所以你粘贴走肯定是用不了的……我去CSDN再发一下吧。
import os
import lxml.etree
from ebooklib import epub, ITEM_DOCUMENT
from opencc import OpenCC
cc = OpenCC('t2s')
def convert_text_traditional_to_simplified(text_bytes):
try:
text_str = text_bytes.decode('utf-8')
converted_str = cc.convert(text_str)
return converted_str.encode('utf-8')
except Exception as e:
print(f"文本转换错误: {e}")
return text_bytes
def convert_epub_traditional_to_simplified(epub_path, output_path):
try:
book = epub.read_epub(epub_path)
for item in book.get_items():
if item.get_type() == ITEM_DOCUMENT:
original_content = item.get_content()
converted_content = convert_text_traditional_to_simplified(original_content)
item.set_content(converted_content)
epub.write_epub(output_path, book)
print(f"转换完成: {output_path}")
except Exception as e:
print(f"处理文件 {epub_path} 时出错: {e}")
def process_input(input_path):
try:
input_path = input_path.strip('"') # 去除拖放路径中的引号
if os.path.isdir(input_path):
print(f"正在处理文件夹: {input_path}")
for filename in os.listdir(input_path):
if filename.lower().endswith('.epub'):
input_file = os.path.join(input_path, filename)
name, ext = os.path.splitext(filename)
output_filename = f"{name}_简中{ext}"
output_path = os.path.join(input_path, output_filename)
convert_epub_traditional_to_simplified(input_file, output_path)
elif os.path.isfile(input_path) and input_path.lower().endswith('.epub'):
print(f"正在处理文件: {input_path}")
name, ext = os.path.splitext(input_path)
output_path = f"{name}_简中{ext}"
convert_epub_traditional_to_simplified(input_path, output_path)
else:
print("错误: 输入的路径不是文件夹或EPUB文件")
except Exception as e:
print(f"程序运行出错: {e}")
def main():
print("这是一个繁体转简中软件,目前只支持EPUB文件格式")
print("输入文件夹路径或者文件路径,按下ENTER以开始程序")
print("你可以直接将你的文件夹或者文件拖到这个窗口")
input_path = input("请输入路径: ")
process_input(input_path)
input("按ENTER键退出...") # 防止窗口立即关闭
if __name__ == "__main__":
try:
main()
except Exception as e:
print(f"程序发生意外错误: {e}")
input("按ENTER键退出...")
更多游戏资讯请关注:电玩帮游戏资讯专区
电玩帮图文攻略 www.vgover.com