stardict转换出来的txt,不同变体都排一起用|分割,比如warp|warped|warpest|warpeth|warping|warps,转换成mdx的时候就会把这一条转为同一个单词,搜中间的词就搜不出来,因为这个词典有80多万条,所以手动编也不现实,能不能直接在txt里面替换一下
昨天为了用pyglossary才安装python的…txt我是拿emeditor修改的(还是靠对比mdx文件拆出来的txt格式修改的…)文本传不上来,老出错,大概是太大了,只能把词典来源放上来了https://www.reader-dict.com/en。stardict的文件拆出来的txt,加了换行和</>就是现在的文件
文本文件可以只取前 10 行。
截了十几传行上来了,所有的基本都是这个格式。例.txt (2.4 KB)
Text
1 Like
反复报错UnicodeDecodeError: ‘gbk’ codec can’t decode byte 0x80 in position 2315: illegal multibyte sequence
怎么办
with open(input_file, 'r') as f
修改成:
with open(input_file, 'r', encoding='utf-8') as f
还是不行,会出现之前的unicode encode error,改成encoding=‘gbk’,errors= 'ignore '的话倒是可以输出,但是会出现很多乱码,encoding utf8 error ignore也是不能转换的,另外就是只能把文件切成20份才能转,整个塞进去电脑转了两个小时都不行
txt 文本文件的编码确保是 utf-8 无 bom,如果不确定用 emeditor 检查一下。
在emeditor原地展开应该也行
查找:
^([^<>|]+?) *\| *([^<>|]+?) *(\|.+)?$
替换为:
\2\n@@@LINK=\1\n</>\n\1\3
(重复替换直到结束)
效果:
1 Like
\3
是指第三个括号的内容,改成 \9
会丢失相应的数据
不断重复“替换全部”,直到所有词头都被展开
(你可以先找几个词条做测试,看它是如何被层层展开的)