掌上百科 - PDAWIKI

 找回密码
 免费注册

QQ登录

只需一步,快速开始

查看: 510|回复: 7

[工具] 从MDX导出指定词条为TXT,这个速度还是很快的

[复制链接]
  • TA的每日心情
    开心
    2019-1-21 17:00
  • 签到天数: 376 天

    [LV.9]以坛为家II

    发表于 2019-8-24 13:56:12 | 显示全部楼层 |阅读模式
    本帖最后由 simonfire 于 2019-8-24 14:01 编辑 ' d/ [/ o$ {" l. k4 o

    + [; h/ H% f( p! P之前发布过一个一样功能的小工具,这是地址,但是提取速度太慢了。6 y9 d" i8 q; b8 `; y# L2 k
    这个提取速度快很多,每秒上百吧,不过这个不能自动打包为MDX,只是导出为txt。* Q% R* A5 D# k% j. ]$ C& {
    本工具主要是用的node mdict库,地址https://github.com/jeka-kiselyov/mdict
    " e7 S) k; g0 W+ |& {3 h. i% M然后使用electron封装,让大家不用安装nodejs就可以直接运行程序
    + U2 n& v( h2 ^' @8 V缺点就是程序体积很大,这个是electron程序的通病,不介意这点的可以下载使用
    0 D. k& ~# s& T5 ?6 h
    4 y# i, K* [6 O程序截图:截图里txt词表我也选择了mdx文件,这是错误的( w( P: v2 C3 @

    ' T- _) g) k  k. @3 c  o
    ) m, z0 Z! X8 s0 _5 A! Y9 }使用方法:下载解压,运行文件夹内的electron-ex.exe,然后按提示选择mdx文件和txt文件(utf-8无bom编码,一行一个单词),导出的output.txt文件在程序同级目录,因为是追加写入模式,所以进行下一次提取前要清空或删除output.txt。

    * r. _& b: P: l' T7 c' w% A$ n, p4 K

    ) @/ G: ]7 ~% y+ e; i下载地址:
    9 P) X5 N8 w- x! z- @# f2 F https://pan.baidu.com/s/1ZTEaQvVrsDC84HtRefj2qQ 提取码: hgxt 复制这段内容后打开百度网盘手机App,操作更方便哦

    评分

    3

    查看全部评分

    本帖被以下淘专辑推荐:

  • TA的每日心情

    2019-2-16 21:57
  • 签到天数: 9 天

    [LV.3]偶尔看看II

    发表于 2019-8-24 14:30:47 | 显示全部楼层
    楼主厉害!
    3 A( N; ~- D+ d; p
    - J8 l+ k! F  z: `+ B3 kV8 果然不是盖的,这个应用就已经秒杀 python 了
  • TA的每日心情
    慵懒
    昨天 07:39
  • 签到天数: 187 天

    [LV.7]常住居民III

    发表于 2019-8-24 15:37:10 | 显示全部楼层
    请问这个提取之后,是按照字典顺序重新排列,还是按照单词表的原始顺序排列?
  • TA的每日心情
    擦汗
    2019-9-18 00:13
  • 签到天数: 319 天

    [LV.8]以坛为家I

    发表于 2019-8-26 14:50:59 | 显示全部楼层
    有空,我研究下,写个 PyQt 版本的出来。

    该用户从未签到

    发表于 2019-9-8 07:14:08 | 显示全部楼层
    十分快速,导出后把txt后缀名改为html,再转入word重新排版。
  • TA的每日心情
    开心
    8 小时前
  • 签到天数: 37 天

    [LV.5]常住居民I

    发表于 2019-9-9 00:23:17 | 显示全部楼层
    会编程就是是可以为所欲为
  • TA的每日心情
    开心
    2019-8-21 08:44
  • 签到天数: 163 天

    [LV.7]常住居民III

    发表于 2019-9-9 16:20:11 | 显示全部楼层
    本帖最后由 mikeee 于 2019-9-9 16:36 编辑 8 n# z( i8 \7 F4 o

    - f3 S. w5 B3 {  {! n2 M% u6 b7 X# Q其实如果将 mdx 读到内存里的话,用什么语言速度都没区别,没什么秒不秒杀 python 的。
    & v- U3 U6 M  q/ H( L0 W5 |; A' q
    1. try:
      1 q# c4 D9 @9 C) T% h5 M$ M! S8 E
    2.     from readmdict import MDX
      ! |  M0 X; J; B
    3. except Exception as exc:
      ! s* L, S& E2 D8 x* J
    4.     try:
      # E7 `- [* s0 E! s
    5.         from readmdict.readmdict import MDX: G# J6 A% ~% T  F, T! ~! i
    6.     except Exception as exc:
      % s; s0 G) G% h
    7.         raise SystemExit(" Can't import readmdict, install readmdict or download readmdict to the current directory.")+ ?( I# p! t6 R; |
    8. ; q  ?: e  ^$ S) S4 v6 L6 |, [: k
    9. filename = r'英汉大词典(第2版).mdx'. T, q5 R0 W4 ]0 y; g
    10. items = dict(MDX(filename).items())  # 将filename读进内存任何语言都需时间
      & h6 n8 r' q' J& ]3 a8 ^7 b) ~
    11. word = 'make'+ z' ^1 u. U4 ]  s# j: s7 Y9 H
    12. res = items[word.encode()].decode()  # 直接访问,所需时间无限趋近零 (按PY3习惯,PY2的encode和decode可能稍微不太一样)) T* M: i, \3 H1 A' M
    13. print(word, res)
      : I8 z; q; A$ M7 a) p
    复制代码

    + z" E8 d) C& B7 I  l
    3 ?+ A# V' O9 ~
  • TA的每日心情
    开心
    2019-1-21 17:00
  • 签到天数: 376 天

    [LV.9]以坛为家II

     楼主| 发表于 2019-9-9 18:36:07 | 显示全部楼层
    mikeee 发表于 2019-9-9 16:20: ^' w$ H8 q1 t1 O+ O
    其实如果将 mdx 读到内存里的话,用什么语言速度都没区别,没什么秒不秒杀 python 的。

    2 P& K8 x8 Q& W# J7 t老哥高见,就是这个道理
    您需要登录后才可以回帖 登录 | 免费注册

    本版积分规则

    顶部qrcode底部
    关注公众号送论坛充值码
    关注微信公众平台
    关注微信公众号 pdawiki,获取邀请码,看文抢积分,抽奖得浮云! Follow our Wechat official account "pdawiki", get invitation codes, and play the lottery to earn points (积分)!

    小黑屋|手机版|Archiver|PDAWIKI |网站地图

    GMT+8, 2019-10-21 15:09 , Processed in 0.261858 second(s), 13 queries , MemCache On.

    Powered by Discuz! X3.4

    © 2001-2017 Comsenz Inc.

    快速回复 返回顶部 返回列表