掌上百科 - PDAWIKI

 找回密码
 免费注册

QQ登录

只需一步,快速开始

查看: 12547|回复: 76

[工具] 写了个抓取特定单词,生成html或pdf的小工具 MdxConverter v0.0.4

[复制链接]
  • TA的每日心情
    开心
    2020-2-29 08:12
  • 签到天数: 1 天

    [LV.1]初来乍到

    发表于 2020-2-28 10:10:04 | 显示全部楼层 |阅读模式
    本帖最后由 noword2k 于 2020-3-9 09:00 编辑
    ( C. O# C8 T5 e/ t5 \/ L/ |0 A  @7 K  R- h, o5 b, ~
    - z! `$ z- V3 v) J% i. z+ K% y' r
    exe下载地址:9 g9 u8 {  e/ o, @* j! Q
    7 w& b! V# _1 B5 i7 K

    1 H: E( ~! @/ B. {% P" a$ s一个用来从 mdx 字典中抓取所需的单词,并生成 html 或 pdf 文件的小工具。
    ( v! r( S5 t+ h' t: y( s5 ~5 u学新单词的时候,一次生成所需的单词解释、例句。* E0 f. k6 `# @5 U
    输入支持xls, xlsx, json, txt,输出支持html和pdf。# ~/ l" t* Q, W
    这个工具没有GUI界面,我也没兴趣做一个GUI界面,不会用命令行的同学就忘了这个吧。' _; I( S2 e1 ]

    ) Y: l( g, t. [, k& d0 Y, n& e& N关于怎么使用:1 j6 E  T5 d% u5 }6 v
    比方说你希望收集以下单词
    ) t' e0 C! ~" j* o. e6 e! TLesson 1:hello world7 \  e, @* V$ K$ T
    Lesson 2:this is a test  w, M7 B; z8 m% V
    Lesson 3: ...../ {1 c4 K, L& i$ Y

    4 H1 d' I* s( }* V: }- U  Z你可以编辑一个txt,一个单词一行,课程名称用#开头,格式如下:7 c8 H8 O4 U7 u" J
    #Lesson 1
    # o  \$ ]3 V8 Ehello
    2 N0 Q1 |+ ]8 u+ g2 F8 `& [2 F+ c7 `world* @2 Z( y8 W3 M3 Z# r
    #Lesson 2
    9 P! N0 P9 l0 Rthis
    ) d6 T1 `2 b; }8 f% D, q; H8 N* _is
    4 S8 L& ?/ |' o( H; D9 Na
    4 t) o/ Z' a5 m+ {! Stest" s5 c4 y8 z8 @7 ~
    #Lesson 3
    . \$ K; w' y# T# c  x' Q! c/ q/ ]....0 l! M% V0 E5 u5 }9 K

    $ i/ i; G7 S7 I& B* l+ q3 e也可以编辑一个excel表格,一个sheet就是一个课程,sheet名称就是课程名称,单词排列在第一列上
    3 ~0 k% A# }5 ]% c! R也可以编辑一个json文件,不再赘述。
    3 g# Q* z" x3 ?& f( ]. M, @1 |, n$ O* p, P" M" V
    然后在命令行下运行6 J/ H1 _! Q( ]
    MdxConverter 【mdx字典名称】 【输入的文件名】 【输出的文件名(后缀为.html或.pdf)】& {2 j6 R8 Q5 C

      h; l- Y& y0 o注意:如果有mdx词典中不存在的单词,程序会显示报警信息,默认动作是收集到invalid_words.txt中。你可以设置运行参数$ A/ `8 [* d* o. M
    --invalid 0 立即退出; s! L" [" V4 n4 G; _
    --invalid 1 输出警告信息到html/pdf中
    % E) B7 C7 ~, J+ C7 Z$ I# u- P! Z0 u
    9 o# R: X" p1 I* m用法
    1. usage: MdxConverter.exe [-h] [--type [{pdf,html}]] [--invalid {0,1,2}]( L; d9 m  J& E/ M: n% v% U3 u
    2.                         mdx_name input_name [output_name]
      6 U$ a$ w" Q4 v# A+ b" g; J
    3. positional arguments:' n; C2 T& Q5 E
    4.   mdx_name! c' C( n3 V1 U* u& q/ b0 o# l0 Q
    5.   input_name
      ! G4 t6 W+ h. k% {0 G% I7 ?
    6.   output_name
      6 Z2 U2 }! M' p! f& c
    7. optional arguments:
      0 Z* d5 s7 Y& {2 t( z6 L; a
    8.   -h, --help           show this help message and exit8 L% v8 }9 E2 a' `% h* {" l* v1 L8 I! C
    9.   --type [{pdf,html}]. W/ B6 O$ E! C9 X! A' a  ~: \
    10.   --invalid {0,1,2}    action for meeting invalid words
      % A+ ]! x1 i9 w& v/ L
    11.                        0: exit immediately
      ) `* M& b2 E( P- M
    12.                        1: output warnning message, C$ k( z2 ~) T! @
    13.                        2: collect them to invalid_words.txt (default)                        
    复制代码
    ; e0 x3 g% a: x0 W, V0 ?

    2 _$ N3 `4 o# o, ?
    例如:
    1. MdxConverter 某某词典.mdx input.xlsx output.pdf
    复制代码
    ! [' ?. ]2 \; e. O5 M. Z" w, F

    * n% c/ |* V* y% _输入
    4 Z" n8 K+ z" T- _2 I  F4 e5 Otxt 示例
    1. #Lesson 1
      1 k, s+ p7 _& U- a( k
    2. hello& w2 S3 I3 u) w* k) B4 Z
    3. world
      8 D" b, p0 h* x0 C
    4. * ~1 Y6 {1 |2 Y& w
    5. #Lesson 2# @, G1 `+ X2 I% p, r& [
    6. python9 n6 X+ r. F4 M& F% }3 ?% |
    7. is
      5 J/ f: I6 _* A" J
    8. awesome
    复制代码

      m* O! k, k: [5 c1 H7 s! jjson 示例
    9 r8 b( b! d1 u- e) r
    1. [$ K& Z3 d6 Q) l  R$ f& d" z
    2.     {1 g0 S  k7 Z, {  f2 _; L( ]6 y
    3.         "name": "Lesson 1",
      " `. p9 f" W# K
    4.         "words": [
      , P# h$ Y* j, ~7 f9 o1 s3 x
    5.             "hello",( L  R# T6 }* q4 ]' t: G
    6.             "world"
      1 G2 p4 Z5 B; I7 ]( s& ]# e
    7.         ]
      9 W/ ?: S0 k6 Z7 p% u; o
    8.     },4 D' [, n3 Y  c& Q4 v2 t
    9.     {
      " l( s7 f$ w, O) ^; Z% x9 s
    10.         "name": "Lesson 2",- \5 h& @2 A6 S, Y+ k4 m
    11.         "words": [- h/ X/ d- F, d/ i$ J
    12.             "python",
        a6 f& S9 ?+ E6 C8 m* V
    13.             "is",/ X6 h& k" {2 [- w' u
    14.             "awesome"- Q- d7 o# C' ^
    15.         ]
      / j5 ^& w3 ]. K2 f
    16.     }
      - z# I' m! ~9 p  Z; {
    17. ]
    复制代码

    ) a4 S$ a& K) L; |5 m9 L5 O6 F3 J9 Sexcel 示例6 }( n5 Y& T9 ~7 ~, r
    . p- W( w# [( k. E5 C
      {) ?: d9 d5 @" E1 m3 r
    输出
    8 M) w: R( d3 X+ F9 A% t0 Z5 s(图片怎么弄都出不出来,我放弃了)
    3 V* @" Z9 @1 g; ^* {9 u/ M/ b! WHTML8 Y( o2 c' F1 I# }

    2 W" B2 B/ F- |) k; dPDF
    6 K0 [2 {! F0 b9 v+ ^( J, @! z# S( H1 B" a2 W9 Z; ?
      r5 ~2 m: q: t2 S% T% H8 q# y3 l4 i

    8 N0 ]# p% c% u/ j. a
    ! ?6 H7 U# r% [% c& j9 N  [& f6 ~8 T4 m' Y4 R0 U. x7 t) v

    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有账号?免费注册

    x

    评分

    4

    查看全部评分

    本帖被以下淘专辑推荐:

  • TA的每日心情
    开心
    2020-2-29 08:12
  • 签到天数: 1 天

    [LV.1]初来乍到

     楼主| 发表于 2020-2-29 08:11:44 | 显示全部楼层
    johannhuang 发表于 2020-2-29 05:33
    . z9 X9 a! x5 |0 p+ _- d& \但你这样一没有就退出 我觉得改词表会改到怀疑人生何苦 不如用Python 讽刺 ...

    * C1 R/ g. _0 K* I, T# [+ O可能是你选的词典词不够全。0 K9 T. J4 J6 _/ N# ^, J" X+ _& A
    反正开源的,你觉得怎么样好,可以自己改。5 Q! |$ _3 P% N0 P
    这就是一个我给自己家熊孩子写的,让她学新单词时用的的小工具,做好后顺便放出来,现在已经满足我的预期要求了。
  • TA的每日心情
    开心
    2018-8-8 03:13
  • 签到天数: 1 天

    [LV.1]初来乍到

    发表于 2020-3-22 16:12:31 | 显示全部楼层
    本帖最后由 喬治兄 于 2020-3-22 16:32 编辑
    # K) l  B# E1 ^+ Z  D) E8 e! ~$ n2 }9 |! q2 Y
    noword2k 兄:4 z6 m7 C3 w  ~  G. z& Z3 `4 j
    html 說明圖沒顯示出來.....+ o+ L- k# b( i) O
    1. 起問是否一個 headword 生成一個 html 檔案 or 多個的 html 檔案根據 headwords 多少個就多少個 html
    : O- P& s3 }- G3 E/ l% c" {4 \: x! x2. 若想生成全部的 headwords 該如何使用....., k1 d4 x; t- E
    3. filename  可否和 headword 相同來生成( Q- }8 F4 q0 i) k
    可否再請仁兄指點迷津解惑一下.....
      f+ w4 f6 G' mThanks a lot" ^6 g8 k0 `0 N% `) t

    3 r0 x. F7 c" L; I, V
  • TA的每日心情
    开心
    2020-2-29 08:12
  • 签到天数: 1 天

    [LV.1]初来乍到

     楼主| 发表于 2020-2-28 17:54:45 | 显示全部楼层
    johannhuang 发表于 2020-2-28 15:29
    $ A1 g( S: |; o& b热情很棒 不过出错就重新编辑的逻辑有点不好哦 建议加try...catch

    & Q% B. q. [0 ?; b+ }9 p  u  h# b可以判断返回的结果是不是为空,为空的话输出警告信息什么的。) u# X3 J; ~3 }7 M6 c6 u/ Q
    但是就怕用户不仔细看输出信息,从而漏了单词,干脆出错强制退出。
    % O8 W* w  I1 B; S: m不喜欢用try..catch,太丑,开销太大。
  • TA的每日心情
    开心
    2020-3-25 07:07
  • 签到天数: 5 天

    [LV.2]偶尔看看I

    发表于 2020-2-28 10:34:18 | 显示全部楼层
    谢谢!下载了.exe后,怎么用?
  • TA的每日心情
    奋斗
    2023-8-12 09:33
  • 签到天数: 1459 天

    [LV.10]以坛为家III

    发表于 2020-2-28 11:11:18 | 显示全部楼层
    这个程序挺实用的,可惜不会python。正在下载exe,不知道有没有比较好的说明书之类的,希望能会用
  • TA的每日心情
    开心
    2021-4-24 08:20
  • 签到天数: 634 天

    [LV.9]以坛为家II

    发表于 2020-2-28 11:28:32 | 显示全部楼层
    谢谢分享   好羡慕楼主  能自己写自己需要的程序
  • TA的每日心情
    开心
    2020-2-29 08:12
  • 签到天数: 1 天

    [LV.1]初来乍到

     楼主| 发表于 2020-2-28 11:48:36 | 显示全部楼层
    elusty 发表于 2020-2-28 10:345 N9 C2 [3 X" v7 b8 Q
    谢谢!下载了.exe后,怎么用?
    7 s8 {: c- o4 \& g
    更新了一下帖子,增加了简单说明
  • TA的每日心情
    开心
    2020-2-29 08:12
  • 签到天数: 1 天

    [LV.1]初来乍到

     楼主| 发表于 2020-2-28 11:48:50 | 显示全部楼层
    neilzhu 发表于 2020-2-28 11:11
    - R: a0 o& m: a7 G* I9 B这个程序挺实用的,可惜不会python。正在下载exe,不知道有没有比较好的说明书之类的,希望能会用 ...

    ) Z+ _- ~/ e/ P: F9 m更新了一下帖子,增加了简单说明
  • TA的每日心情
    慵懒
    2022-1-17 18:55
  • 签到天数: 464 天

    [LV.9]以坛为家II

    发表于 2020-2-28 11:49:46 | 显示全部楼层
    太棒了!支持楼主!
  • TA的每日心情
    慵懒
    2020-5-3 16:00
  • 签到天数: 207 天

    [LV.7]常住居民III

    发表于 2020-2-28 15:29:25 | 显示全部楼层
    热情很棒 不过出错就重新编辑的逻辑有点不好哦 建议加try...catch
  • TA的每日心情
    慵懒
    2020-5-3 16:00
  • 签到天数: 207 天

    [LV.7]常住居民III

    发表于 2020-2-29 05:33:01 | 显示全部楼层
    noword2k 发表于 2020-2-28 17:54; S& v7 x( j. u* c2 G0 \
    可以判断返回的结果是不是为空,为空的话输出警告信息什么的。
    % ], w  F; h9 O2 E$ _( p6 W但是就怕用户不仔细看输出信息,从而漏了 ...
    : ^! [; I, O5 v1 a3 x' Z& b, X  V
    但你这样一没有就退出 我觉得改词表会改到怀疑人生何苦 不如用Python 讽刺
  • TA的每日心情
    开心
    2020-2-29 08:12
  • 签到天数: 1 天

    [LV.1]初来乍到

     楼主| 发表于 2020-2-29 08:45:05 | 显示全部楼层
    johannhuang 发表于 2020-2-29 05:337 r! ^7 R. B. _' h$ ^  P
    但你这样一没有就退出 我觉得改词表会改到怀疑人生何苦 不如用Python 讽刺 ...
    / j2 u% E/ Q3 g) h
    想了一下,还是从善如流,反正是举手之劳。
    # M* G1 T/ `* x1 T& m; _新版的遇到没查到的单词,会显示警告信息,然后继续。
  • TA的每日心情
    奋斗
    2023-8-12 09:33
  • 签到天数: 1459 天

    [LV.10]以坛为家III

    发表于 2020-2-29 10:17:15 | 显示全部楼层
    已经试用了昨天的exe版,新版的正在下载。昨天的那个版本基本能用起来,但经常报错,可能是查不到所列的单词。所以不知能否实现:把能找到的单词全输出来,找不到的单词列在输出文件的最前或最后。多谢!
  • TA的每日心情
    开心
    2020-2-29 08:12
  • 签到天数: 1 天

    [LV.1]初来乍到

     楼主| 发表于 2020-2-29 10:31:18 | 显示全部楼层
    neilzhu 发表于 2020-2-29 10:17
    9 W/ F9 m+ F% Q2 u& h4 l* d已经试用了昨天的exe版,新版的正在下载。昨天的那个版本基本能用起来,但经常报错,可能是查不到所列的单 ...

    0 g- w0 }* c- a: ^# A/ y现在是找不到的单词,在html或pdf中显示 warning 信息。
    & F: x+ \; P1 W: M考虑统一放在最后,单独一组invalid words。' v9 d% R. r( e4 `
    等有空再搞。
  • TA的每日心情
    怒
    2021-10-23 19:58
  • 签到天数: 212 天

    [LV.7]常住居民III

    发表于 2020-2-29 11:53:31 | 显示全部楼层
    没有的单词跳过,另存一个文本格式单词表吧,谢谢不断更新,持续围观
  • TA的每日心情
    怒
    2021-10-23 19:58
  • 签到天数: 212 天

    [LV.7]常住居民III

    发表于 2020-3-3 01:11:57 | 显示全部楼层
    给力又热情,高风亮节啊,高兄
  • TA的每日心情
    慵懒
    昨天 10:44
  • 签到天数: 2511 天

    [LV.Master]伴坛终老

    发表于 2020-3-9 03:20:40 | 显示全部楼层
           谢谢楼主的辛勤劳动与奉献分享,小工具挺实用。9 k/ }% R% G6 \, {
    ; a8 U( q9 |, |5 ~5 ~2 F& g: u

    该用户从未签到

    发表于 2020-3-11 14:34:44 | 显示全部楼层
    太方便了,如果可以用exe有执行界面就好了。

    该用户从未签到

    发表于 2020-3-16 15:45:29 | 显示全部楼层
    Mac能用不,下载试试
  • TA的每日心情
    怒
    2022-12-20 09:47
  • 签到天数: 375 天

    [LV.9]以坛为家II

    发表于 2020-3-17 16:26:43 | 显示全部楼层
    太棒了! 多谢!楼主!
  • TA的每日心情
    开心
    6 天前
  • 签到天数: 999 天

    [LV.10]以坛为家III

    发表于 2020-3-22 16:34:57 | 显示全部楼层
    楼主太给力了 赞赞赞
    5 u  y0 L# y( h- l+ L
    您需要登录后才可以回帖 登录 | 免费注册

    本版积分规则

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

    GMT+8, 2026-10-12 09:30 , Processed in 0.024603 second(s), 27 queries .

    Powered by Discuz! X3.4

    © 2001-2023 Discuz! Team.

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