掌上百科 - PDAWIKI

 找回密码
 免费注册

QQ登录

只需一步,快速开始

查看: 11304|回复: 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 编辑 + p! k+ A$ ]  i. N

    1 @0 D( g* u: ]1 u8 `6 q9 `- s7 \0 r  K4 y. K/ r. ~3 n
    exe下载地址:7 E' t% b3 S/ H0 f' V

    2 l1 o8 t+ Q' ^7 W' R  Q9 |: b! @6 D7 {
    一个用来从 mdx 字典中抓取所需的单词,并生成 html 或 pdf 文件的小工具。
    7 k1 v( i; d/ v' t' T1 G$ I学新单词的时候,一次生成所需的单词解释、例句。
    ; Y" l8 h' j1 f, X) L# w1 r输入支持xls, xlsx, json, txt,输出支持html和pdf。
    0 |( P# T9 s5 z) y这个工具没有GUI界面,我也没兴趣做一个GUI界面,不会用命令行的同学就忘了这个吧。) H+ g0 C9 ]4 P$ S
    % S% X* p1 F! e: V; S! Q) _
    关于怎么使用1 W9 F( x$ j' u
    比方说你希望收集以下单词
      L. X3 ~' Y6 MLesson 1:hello world& E  Q- R; v/ O. W0 a
    Lesson 2:this is a test
    8 L5 }0 _* y4 {; O$ K5 ILesson 3: .....- V0 Z3 y5 x: U# d- k

    7 c8 M5 P$ d- i! S9 f& U+ a% S你可以编辑一个txt,一个单词一行,课程名称用#开头,格式如下:
      w( v; S3 N8 e7 }* I- W#Lesson 1) [" G! Z( ?7 I: ^$ C# K5 x
    hello$ `) x: H: M" G5 Y
    world
    7 U6 G1 M- d8 c6 P#Lesson 2
    6 {& @4 v2 u: l. j# _this* k% R( P) A1 a' v6 s/ y
    is
    0 E& s6 R* h) [a5 @( r* C: s, D' S. S2 \
    test
    ; S: I7 x3 A' h#Lesson 32 b8 r, `3 h# t4 C
    ....* Y; r0 m- z: V9 q$ c
    # o1 A+ V: s6 Q" _5 A& r
    也可以编辑一个excel表格,一个sheet就是一个课程,sheet名称就是课程名称,单词排列在第一列上% o3 x7 h; g8 c" j* _) e. g
    也可以编辑一个json文件,不再赘述。, e: P: i* Z: c- u$ y# T6 N

    ! h  T5 J! A3 p$ g然后在命令行下运行
    5 Y1 }; f% {. k4 W& KMdxConverter 【mdx字典名称】 【输入的文件名】 【输出的文件名(后缀为.html或.pdf)】
    ) ~) ], v" o; N6 I
    . c/ l; J+ C+ y. O- B6 k2 v/ a注意:如果有mdx词典中不存在的单词,程序会显示报警信息,默认动作是收集到invalid_words.txt中。你可以设置运行参数( ^" T! S/ N  ^/ N& L8 w3 T
    --invalid 0 立即退出
    # w, `; X5 r. |- t+ C8 \8 r--invalid 1 输出警告信息到html/pdf中) _) ?, R) w1 b- H) l. }# g# ^

    ; g* A% C, S# ]& l, P8 L8 u用法
    1. usage: MdxConverter.exe [-h] [--type [{pdf,html}]] [--invalid {0,1,2}]( V! C2 W. T3 B3 Y# g
    2.                         mdx_name input_name [output_name]% b  k! r( o6 u& r% z
    3. positional arguments:
      ! w5 b( l4 K* r& _: \
    4.   mdx_name' |% v. k( y6 H& g& D
    5.   input_name
      4 u  I4 R: V# d6 w1 T# c4 i) m
    6.   output_name
      % q$ J+ h! W/ q; s5 p1 i
    7. optional arguments:
      3 n; l6 ?; [) a9 o2 \& `* M
    8.   -h, --help           show this help message and exit% B4 [5 A, }0 @( x
    9.   --type [{pdf,html}]: F5 u! O& n: s9 f
    10.   --invalid {0,1,2}    action for meeting invalid words
      " o0 E' h9 _  D6 Z9 g4 f: v& Z  s
    11.                        0: exit immediately( T! k3 o) ]/ o; ~6 w
    12.                        1: output warnning message6 y0 I! e9 X1 {7 ]" x! \1 s1 }
    13.                        2: collect them to invalid_words.txt (default)                        
    复制代码

      o- O2 @7 f0 `& f8 R) N  b, i5 y9 z1 j+ u$ e( |4 m
    例如:
    1. MdxConverter 某某词典.mdx input.xlsx output.pdf
    复制代码
    2 B. J2 F$ m& U* A! N

    . ?; ]  h- F$ ?; O0 i输入
    ) b6 z7 [7 {* q/ _txt 示例
    1. #Lesson 1
      ( U& S9 S) C$ c5 G1 `) c
    2. hello
      . c) L$ o9 u  X* X% K
    3. world. a5 K+ ]3 R( r2 v" M# s0 X
    4. 2 m6 x- U. }# B  Y( [. w: R
    5. #Lesson 20 H1 h8 E$ \* X/ D$ o( D0 p
    6. python
      5 r/ j/ m/ _/ V( f) `  g
    7. is
      2 S0 H( G" F4 U" {3 M" V2 X
    8. awesome
    复制代码
    0 G7 \0 Y! _7 q, K
    json 示例
      H9 k6 ^' `! i0 b
    1. [7 J' p+ D9 s7 @. Q+ @
    2.     {2 z1 z9 v$ Q1 q# C0 K3 V% |0 Z7 d  p
    3.         "name": "Lesson 1",
      " c) z" m8 b5 i. t* e: A
    4.         "words": [7 `6 @9 l' l4 U0 G. G
    5.             "hello",
      + A1 G' O4 Q: U/ s
    6.             "world"
        K) X5 c# E. T( F* u! I
    7.         ]
      8 i' }. n, R' ]6 }6 l
    8.     },
      - F& ]4 H+ j+ x" k0 l: i
    9.     {3 ?! ]5 R: [5 f3 Y- G, j  s/ X
    10.         "name": "Lesson 2",# S0 y+ ]( ]( A1 ]& ?4 d: i- K4 M
    11.         "words": [, d" I: ^  {( {2 F1 ]
    12.             "python",+ e0 N  k. J# u% u5 k3 ~' v* w
    13.             "is",
      8 \2 c; i# T, W
    14.             "awesome"
      ( l4 {" }' n0 h9 f' T
    15.         ]1 t) {) `0 V; V0 d
    16.     }
      5 u9 k9 B, U- w1 x6 J( w" O
    17. ]
    复制代码
    - q0 y; `# F5 K6 W) J* d7 |
    excel 示例3 l8 N6 F0 d+ i3 y* g% a
    4 `9 c7 `% I: W5 {# F: a
    ; w- u& O9 H7 Z" {# k$ P
    输出
    , E7 Z7 W- w6 z9 ^(图片怎么弄都出不出来,我放弃了)$ T0 l, U) r8 L. o& Z0 W' t6 L
    HTML
    5 k; C' e1 l0 X3 B: m* K
    1 e, E. y0 T% E2 l7 BPDF! S! {! B1 o% f! j" I* G  C" h9 I
    7 Z. U/ A* v- R1 r9 _4 N

    / V. ?5 F. z1 ?6 w4 D( [5 a. C' M8 E2 l) r, h+ [4 ~1 b
    # U6 o% ~8 p- `5 E
    4 }" X) O) J# j  {8 x

    本帖子中包含更多资源

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

    x

    评分

    4

    查看全部评分

    本帖被以下淘专辑推荐:

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

    [LV.1]初来乍到

     楼主| 发表于 2020-2-29 08:11:44 | 显示全部楼层
    johannhuang 发表于 2020-2-29 05:33
    & e+ ^- V& y# D/ I但你这样一没有就退出 我觉得改词表会改到怀疑人生何苦 不如用Python 讽刺 ...

    ) g: r( k! b( d8 k可能是你选的词典词不够全。4 D. j4 j( C$ Z8 S8 n
    反正开源的,你觉得怎么样好,可以自己改。, {8 d5 m8 h- R, ~& s0 B7 x
    这就是一个我给自己家熊孩子写的,让她学新单词时用的的小工具,做好后顺便放出来,现在已经满足我的预期要求了。
  • TA的每日心情
    开心
    2018-8-8 03:13
  • 签到天数: 1 天

    [LV.1]初来乍到

    发表于 2020-3-22 16:12:31 | 显示全部楼层
    本帖最后由 喬治兄 于 2020-3-22 16:32 编辑
    - q7 f7 M0 H5 V( m6 N. {8 S, C% D0 r0 m% C9 n6 O' H
    noword2k 兄:& ]( O: }9 |% L2 G
    html 說明圖沒顯示出來.....
    % K4 `, v3 Z6 ~1. 起問是否一個 headword 生成一個 html 檔案 or 多個的 html 檔案根據 headwords 多少個就多少個 html& S6 H3 {! [. w  S6 o
    2. 若想生成全部的 headwords 該如何使用.....' I# B3 w" L* h- r, v* e+ ~
    3. filename  可否和 headword 相同來生成' }1 i5 v- P0 `, {
    可否再請仁兄指點迷津解惑一下.....
    ! k( E: P8 q! P! IThanks a lot
    ! F! T0 U: w+ _
    ! B5 b, ^% M# a( _8 Q- C
  • TA的每日心情
    开心
    2020-2-29 08:12
  • 签到天数: 1 天

    [LV.1]初来乍到

     楼主| 发表于 2020-2-28 17:54:45 | 显示全部楼层
    johannhuang 发表于 2020-2-28 15:29
    ! C8 Z5 I0 U6 r. N热情很棒 不过出错就重新编辑的逻辑有点不好哦 建议加try...catch

    & P; k0 m5 ?6 B$ `4 @. P5 {可以判断返回的结果是不是为空,为空的话输出警告信息什么的。
    . A; c3 Q( i' I9 N0 ~但是就怕用户不仔细看输出信息,从而漏了单词,干脆出错强制退出。
    & V. p/ I3 j2 {7 d+ R不喜欢用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:34
    # X% l. Z6 W9 d, W谢谢!下载了.exe后,怎么用?

    $ j8 s3 M* G: l4 i" Y更新了一下帖子,增加了简单说明
  • TA的每日心情
    开心
    2020-2-29 08:12
  • 签到天数: 1 天

    [LV.1]初来乍到

     楼主| 发表于 2020-2-28 11:48:50 | 显示全部楼层
    neilzhu 发表于 2020-2-28 11:11
    $ C( k& H' T0 w这个程序挺实用的,可惜不会python。正在下载exe,不知道有没有比较好的说明书之类的,希望能会用 ...
    ) Z4 o' u! i. ^* Y! Z1 I2 D" B7 e
    更新了一下帖子,增加了简单说明
  • 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
    , K# g. B7 F3 C. }, O) j0 Y5 M可以判断返回的结果是不是为空,为空的话输出警告信息什么的。# `3 h% r. g8 X& K# K* @+ ~2 A* V
    但是就怕用户不仔细看输出信息,从而漏了 ...

    ' D8 |. D. U4 @但你这样一没有就退出 我觉得改词表会改到怀疑人生何苦 不如用Python 讽刺
  • TA的每日心情
    开心
    2020-2-29 08:12
  • 签到天数: 1 天

    [LV.1]初来乍到

     楼主| 发表于 2020-2-29 08:45:05 | 显示全部楼层
    johannhuang 发表于 2020-2-29 05:33
    ; C+ g. t! f6 X8 I) F1 D7 @但你这样一没有就退出 我觉得改词表会改到怀疑人生何苦 不如用Python 讽刺 ...
    % u: s, ?* _( I' D+ j$ O# U
    想了一下,还是从善如流,反正是举手之劳。
    , W1 d$ Y8 j* B9 Q, [; _% J$ }+ w新版的遇到没查到的单词,会显示警告信息,然后继续。
  • 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& u4 M- S0 U# x1 {
    已经试用了昨天的exe版,新版的正在下载。昨天的那个版本基本能用起来,但经常报错,可能是查不到所列的单 ...

    7 v! p$ Q( D4 W' @7 d" ^4 T现在是找不到的单词,在html或pdf中显示 warning 信息。+ t5 C; U2 X  j) N
    考虑统一放在最后,单独一组invalid words。
    ) P4 {1 n) f: B' a2 ~" L等有空再搞。
  • 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:08
  • 签到天数: 2451 天

    [LV.Master]伴坛终老

    发表于 2020-3-9 03:20:40 | 显示全部楼层
           谢谢楼主的辛勤劳动与奉献分享,小工具挺实用。
    1 ], R( ^$ K8 U* a7 x& L
    + \/ x& X7 ^$ n7 x" l0 s

    该用户从未签到

    发表于 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的每日心情
    开心
    2026-5-3 09:50
  • 签到天数: 983 天

    [LV.10]以坛为家III

    发表于 2020-3-22 16:34:57 | 显示全部楼层
    楼主太给力了 赞赞赞
    / b1 G. f6 H6 R5 C  D
    您需要登录后才可以回帖 登录 | 免费注册

    本版积分规则

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

    GMT+8, 2026-8-6 00:46 , Processed in 0.024968 second(s), 27 queries .

    Powered by Discuz! X3.4

    © 2001-2023 Discuz! Team.

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