掌上百科 - PDAWIKI

 找回密码
 免费注册

QQ登录

只需一步,快速开始

查看: 5543|回复: 73

[工具] 写了个抓取特定单词,生成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 编辑
    4 j, B/ ?1 N2 F0 ]. r" [3 B7 F
    ( {6 a" S$ c" O& L/ x/ l
    9 @. ?  T1 ]1 c. Y7 q( eexe下载地址:. a- f  Q3 V4 u/ e  N% ~7 y8 q8 }
    ! H3 e; c8 C/ p; r% z) r: H

    # M& Y+ [9 I1 m, M一个用来从 mdx 字典中抓取所需的单词,并生成 html 或 pdf 文件的小工具。
    - P- e$ B* Z% V& n6 k2 n2 `& x学新单词的时候,一次生成所需的单词解释、例句。
    + S5 M7 O9 Q6 }# y5 V% T3 ?输入支持xls, xlsx, json, txt,输出支持html和pdf。; _* }4 L. t" V/ D4 D/ ^
    这个工具没有GUI界面,我也没兴趣做一个GUI界面,不会用命令行的同学就忘了这个吧。- I. v6 u9 {8 X& Y
    * c; R7 N6 i" ^3 @0 g0 ~
    关于怎么使用
    9 W  X* \& A) i5 E2 D5 @8 m比方说你希望收集以下单词
    : E1 M; U2 m# h' ZLesson 1:hello world
    % F) t, ]8 u7 Q0 WLesson 2:this is a test
    " ^. j9 _# U+ ~4 [) I! S$ oLesson 3: .....& I# r# K' H7 D, k7 \! h( q7 ]; @

      |* Y& e& @2 S& c3 j* f- v3 N0 _  f; ^你可以编辑一个txt,一个单词一行,课程名称用#开头,格式如下:
      y: }( R. ]3 V! O# Y#Lesson 1# e3 c& S6 _, [+ d6 Y0 T! [
    hello3 r6 f) A, V1 h8 u5 v& W
    world
    $ J+ D& F# V) X0 _#Lesson 2. z' P1 ?7 X! [3 \3 U3 p0 Y
    this
    9 ]! n" a4 H- B/ ~! D( ois
    % {1 Y. j% c' z; j) z, ^( ba
    3 m' \2 a! B0 z$ atest+ Y, y; P4 O" b8 c  B
    #Lesson 3
      \1 d' y8 F' _....' I" a9 y! d8 r# ]3 d0 q

    2 t7 c- ?: P" T7 a# L也可以编辑一个excel表格,一个sheet就是一个课程,sheet名称就是课程名称,单词排列在第一列上) T; n& F1 o4 P" E
    也可以编辑一个json文件,不再赘述。0 z7 @+ W' x" o0 L( I3 D5 G

    ) D, U& L6 W7 ]) n# k然后在命令行下运行
    9 H4 |& S+ i: H8 b9 q. i" C+ k( sMdxConverter 【mdx字典名称】 【输入的文件名】 【输出的文件名(后缀为.html或.pdf)】& s; [; C$ m' n+ a- M% N

    3 _0 O2 y  O2 f4 p8 z/ y注意:如果有mdx词典中不存在的单词,程序会显示报警信息,默认动作是收集到invalid_words.txt中。你可以设置运行参数7 F$ P  O; T7 Q& ]+ m
    --invalid 0 立即退出
    $ n, R+ k  g" p+ g3 J7 ~+ _--invalid 1 输出警告信息到html/pdf中. r! I. m& ?# l; k

    . b* ~' L8 v- K9 T5 Z7 e7 M: X用法
    1. usage: MdxConverter.exe [-h] [--type [{pdf,html}]] [--invalid {0,1,2}]
      ) `+ o& o+ d7 P( f. d  |
    2.                         mdx_name input_name [output_name]
        o8 v2 y( v. ]; X3 H' g
    3. positional arguments:
      3 }/ P5 i% `- J6 ]" Y8 D( z3 l- i+ b
    4.   mdx_name
      1 o/ U4 S' o; O; w% u( l
    5.   input_name
      & L+ t+ i, U1 |6 W1 o+ [
    6.   output_name
      ; P0 [1 J7 M" l
    7. optional arguments:" M- ]- N9 S3 j/ P
    8.   -h, --help           show this help message and exit& q- Z% {/ G4 n. o$ L3 L
    9.   --type [{pdf,html}]! ?4 \! [- ~7 |! Z" ~% `5 s* u
    10.   --invalid {0,1,2}    action for meeting invalid words
      4 Y+ F3 a6 N/ e, d$ I+ y2 x3 G8 b+ B! m
    11.                        0: exit immediately
      ' f, c* R3 X5 o: u$ l: A- w  O; q- K
    12.                        1: output warnning message) G3 }: o" @* T4 b
    13.                        2: collect them to invalid_words.txt (default)                        
    复制代码

    6 l6 P+ {2 I) G+ q
    4 n+ _; s, g( t- d- P* z: q- @* f
    例如:
    1. MdxConverter 某某词典.mdx input.xlsx output.pdf
    复制代码

    ( J* Z# ?& S& D, z2 e+ {- S/ H8 N9 h* T  C
    输入
    5 H7 K; U; s  D+ e1 R7 y" @txt 示例
    1. #Lesson 1
      * z9 I# y9 d+ S
    2. hello
      5 e2 i3 ?$ ~/ I' K8 w6 h
    3. world
      4 B: S0 f1 i2 _/ u2 F, H

    4. ( [/ u( L! L: i8 Q/ ^9 j
    5. #Lesson 2
      2 y& M! _" A8 ^- F
    6. python/ {4 S3 |) ?  r/ }8 @' i$ E  e
    7. is/ `0 O' C  {( H5 z
    8. awesome
    复制代码

    / t  P* F7 P, k5 A% V) }# bjson 示例" t2 y  y# H, R- `, o1 J( C
    1. [
      % y" Y" Y7 n8 a" V
    2.     {7 c' R; M. K1 L1 o" @+ U$ G0 p3 _* }
    3.         "name": "Lesson 1",
      1 e5 g# V0 o. m! \9 o, _' E
    4.         "words": [
      # e1 W0 z. k: @5 |# Q0 c
    5.             "hello",3 V# M" i2 y! J: {, c# l
    6.             "world"
      % U4 r$ J' T5 `7 b7 o) z
    7.         ]. ?- P, v$ }2 Y! \5 g( s: @
    8.     },
      % j% Z6 n) h* y
    9.     {
      , P. W# H0 N1 b; @. X' v- l
    10.         "name": "Lesson 2",
      5 d% K$ {0 B% z! ?: x; Z( u, u$ I
    11.         "words": [
      + C( D' B6 U' V  L0 r  f
    12.             "python",- k; _! _8 l6 s0 j' m8 H3 X+ I3 y
    13.             "is",
      , D2 g. A# Y; k( S
    14.             "awesome"9 Q# ]3 ^  Q( @) A: X
    15.         ]
      ( K5 ?9 Y; q  ?$ y# Q
    16.     }
      + Q6 L0 c* y* l4 B) ~$ G" Q
    17. ]
    复制代码

    + c8 f" I: \" Q2 o+ Lexcel 示例
    % C. J& i% H6 ^2 @/ ?6 C3 y
    6 _: d3 Y/ @& w" t
    ( b% a3 a9 I1 u输出: D+ T5 t$ V* x# Q- k& x: f
    (图片怎么弄都出不出来,我放弃了)
    & `$ ]1 |! ^  [HTML: z9 t; E7 G$ L4 c

    8 U5 o+ I5 c7 q7 [5 x' \PDF$ x0 M" Z3 x; @; a9 e1 b$ t9 d

    * }5 o. z/ n0 }6 y5 R  e) ^% k- a( E( ?7 V
    " W5 N# A% E5 W8 Z
    1 z( B  l5 M' ]# T1 [
    . Q6 w' {/ Z3 i% g) K

    本帖子中包含更多资源

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

    x

    评分

    4

    查看全部评分

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

    [LV.1]初来乍到

     楼主| 发表于 2020-2-29 08:11:44 | 显示全部楼层
    johannhuang 发表于 2020-2-29 05:331 v0 N4 u% t6 p4 Y3 ]5 Z. f
    但你这样一没有就退出 我觉得改词表会改到怀疑人生何苦 不如用Python 讽刺 ...
    ) C+ G. q( o* F: N5 U1 {% ~
    可能是你选的词典词不够全。- t! n! ~4 A5 w. J5 l
    反正开源的,你觉得怎么样好,可以自己改。; n$ I* x( {0 h4 s  J0 K. ?5 k
    这就是一个我给自己家熊孩子写的,让她学新单词时用的的小工具,做好后顺便放出来,现在已经满足我的预期要求了。
  • TA的每日心情
    开心
    2018-8-8 03:13
  • 签到天数: 1 天

    [LV.1]初来乍到

    发表于 2020-3-22 16:12:31 | 显示全部楼层
    本帖最后由 喬治兄 于 2020-3-22 16:32 编辑
    % x& E+ z& @" f' H, X2 s  ^4 \) k0 b+ T4 J7 G& Y
    noword2k 兄:" R  c, A+ g1 ?" b* @, S) o! {
    html 說明圖沒顯示出來.....) M* O( X0 ]. H
    1. 起問是否一個 headword 生成一個 html 檔案 or 多個的 html 檔案根據 headwords 多少個就多少個 html
    . r" x. m$ M0 X, B/ z$ q) B2. 若想生成全部的 headwords 該如何使用.....
    ; ^9 p3 D. Q0 s8 X" X% G3. filename  可否和 headword 相同來生成" V, O$ l7 O0 ]( V1 t! s
    可否再請仁兄指點迷津解惑一下.....
    8 \( }5 b. b2 V  `' A0 K; T. T8 ?Thanks a lot" i- S( B- `: E
    # s7 }5 u8 t! n, o  n8 X2 [( I
  • TA的每日心情
    开心
    2020-2-29 08:12
  • 签到天数: 1 天

    [LV.1]初来乍到

     楼主| 发表于 2020-2-28 17:54:45 | 显示全部楼层
    johannhuang 发表于 2020-2-28 15:29  H! T1 d: O( b% ~! b! {  y0 h
    热情很棒 不过出错就重新编辑的逻辑有点不好哦 建议加try...catch
    / z2 h5 Y; V1 |; T6 H
    可以判断返回的结果是不是为空,为空的话输出警告信息什么的。5 B, O+ O" Z; G8 i: M
    但是就怕用户不仔细看输出信息,从而漏了单词,干脆出错强制退出。. D! M; ]; j, k* Y3 T) j. S% X
    不喜欢用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
    ( D9 \- `2 _' _$ l+ [谢谢!下载了.exe后,怎么用?

    & r6 T" y3 L& o3 C2 S- z更新了一下帖子,增加了简单说明
  • TA的每日心情
    开心
    2020-2-29 08:12
  • 签到天数: 1 天

    [LV.1]初来乍到

     楼主| 发表于 2020-2-28 11:48:50 | 显示全部楼层
    neilzhu 发表于 2020-2-28 11:111 q' o, I" T1 `: ]
    这个程序挺实用的,可惜不会python。正在下载exe,不知道有没有比较好的说明书之类的,希望能会用 ...

    ( z8 N6 I7 A- A! _更新了一下帖子,增加了简单说明
  • 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
    - w* A% a" L( o9 R( i可以判断返回的结果是不是为空,为空的话输出警告信息什么的。
    2 v; B+ O# t# u但是就怕用户不仔细看输出信息,从而漏了 ...

    3 }- P% \! H" @! X但你这样一没有就退出 我觉得改词表会改到怀疑人生何苦 不如用Python 讽刺
  • TA的每日心情
    开心
    2020-2-29 08:12
  • 签到天数: 1 天

    [LV.1]初来乍到

     楼主| 发表于 2020-2-29 08:45:05 | 显示全部楼层
    johannhuang 发表于 2020-2-29 05:33
    7 z' m" Q% g* J" w# @5 q1 {但你这样一没有就退出 我觉得改词表会改到怀疑人生何苦 不如用Python 讽刺 ...
    . z  y) q6 h; a) z  s9 y1 B
    想了一下,还是从善如流,反正是举手之劳。; g( i; }0 B( [) t, r
    新版的遇到没查到的单词,会显示警告信息,然后继续。
  • 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
    0 S6 v9 g; m* L! ]9 B# \已经试用了昨天的exe版,新版的正在下载。昨天的那个版本基本能用起来,但经常报错,可能是查不到所列的单 ...
    ' Q0 B9 ?8 D- J" @" G6 p' g  v
    现在是找不到的单词,在html或pdf中显示 warning 信息。7 A) U/ \+ i' K, |* x
    考虑统一放在最后,单独一组invalid words。
    ! e/ g; \( B9 |' _- X1 S+ y等有空再搞。
  • 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的每日心情
    慵懒
    昨天 20:03
  • 签到天数: 1720 天

    [LV.Master]伴坛终老

    发表于 2020-3-9 03:20:40 | 显示全部楼层
           谢谢楼主的辛勤劳动与奉献分享,小工具挺实用。
    8 k, S2 w; t) n3 Z# E" T. X' L8 d; U3 s5 E# I

    该用户从未签到

    发表于 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的每日心情
    开心
    2024-4-18 10:17
  • 签到天数: 929 天

    [LV.10]以坛为家III

    发表于 2020-3-22 16:34:57 | 显示全部楼层
    楼主太给力了 赞赞赞
    . J7 [$ s8 S3 a5 ]6 J
    您需要登录后才可以回帖 登录 | 免费注册

    本版积分规则

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

    GMT+8, 2024-4-26 04:20 , Processed in 0.074093 second(s), 11 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2023, Tencent Cloud.

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