掌上百科 - PDAWIKI

 找回密码
 免费注册

QQ登录

只需一步,快速开始

查看: 5542|回复: 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 编辑 # ?9 ^5 y, B, X0 T' L" A

    ! G5 w* X# Q# a5 D# _6 X1 x! r5 m  A: R! O* T- w  {: r1 g
    exe下载地址:
    / L8 W3 k0 ]. C, n) O1 d; q
    3 ]5 p# y( M" k# f3 S; K4 K
    0 @, y- J0 O4 i一个用来从 mdx 字典中抓取所需的单词,并生成 html 或 pdf 文件的小工具。
    / ]7 W2 N' j. h0 e: c& V+ G) ~2 q学新单词的时候,一次生成所需的单词解释、例句。
    6 n& C$ d/ T# l: C' u输入支持xls, xlsx, json, txt,输出支持html和pdf。
    9 H9 g8 ?% q$ R  e2 L2 R" ~这个工具没有GUI界面,我也没兴趣做一个GUI界面,不会用命令行的同学就忘了这个吧。- }3 B; {" e6 Y- I( q- x9 z

    # z1 c$ x! u, o4 K9 ^关于怎么使用/ {7 R' h  c+ r% P6 m
    比方说你希望收集以下单词
    1 @' T6 h  c0 pLesson 1:hello world( U3 Q! C; @. q& e# k
    Lesson 2:this is a test* T% p, z. K" x+ F, p9 z6 E" R4 ]
    Lesson 3: .....! y9 Y) {, e* P0 ~/ m4 F! f) g' t/ Q

    5 H8 w2 C' `! g2 W你可以编辑一个txt,一个单词一行,课程名称用#开头,格式如下:
    # M, {) O$ h& Z, Q#Lesson 1
    - j. }" G( k* Ohello$ A, p( ?' r- n
    world
    ' a1 O- g- @7 i3 }" j7 T' Z3 r#Lesson 2
    1 d/ A- R" i+ f. }1 ~, u& b! Xthis) [! f& B% C' v/ s. i7 R& J/ Z
    is4 f* Y# Y% Q: `- ~! B) r* F0 ]8 j
    a
    2 b) z* Y  T5 d/ \; O9 atest0 k6 ]* Y; m* P. h9 M! E
    #Lesson 3+ H, B1 Q" M2 \. @( `
    ....
      v8 [) A" d: V; d
    , K! ^, F+ r; m+ ~  H; |也可以编辑一个excel表格,一个sheet就是一个课程,sheet名称就是课程名称,单词排列在第一列上7 L+ f( V0 [. s4 s# [) g5 A, \/ V
    也可以编辑一个json文件,不再赘述。
    - o6 w/ @3 }$ D* K% d  V# o
    ; o9 r$ Q7 j" \& v/ a$ ]( L然后在命令行下运行
    + x( ?, p4 o6 RMdxConverter 【mdx字典名称】 【输入的文件名】 【输出的文件名(后缀为.html或.pdf)】
      Q/ ?) Y! Q3 G( q5 L0 B3 _  w: O5 F4 p; J, D5 W. D/ d/ Q4 |' z9 n0 r
    注意:如果有mdx词典中不存在的单词,程序会显示报警信息,默认动作是收集到invalid_words.txt中。你可以设置运行参数! n9 a/ _" N( S% f7 i; l3 a
    --invalid 0 立即退出
    5 o& v; ]. k# A# i' h( h--invalid 1 输出警告信息到html/pdf中5 p% b6 O$ V, [5 r% c1 b

    ! Y. o: Q3 ~5 a1 x# t0 q! l用法
    1. usage: MdxConverter.exe [-h] [--type [{pdf,html}]] [--invalid {0,1,2}]. N" M6 M0 l8 Y; m& Q0 Y  |; g
    2.                         mdx_name input_name [output_name]
      $ X! f7 P- p9 V/ E4 }9 e
    3. positional arguments:2 _  K/ E  x9 f. O
    4.   mdx_name, x/ }! W- ?" s  r
    5.   input_name8 ~8 O  ?6 j* j9 w
    6.   output_name
      # u6 o6 z9 G" ~; L
    7. optional arguments:9 g/ ^) J/ B! H; h$ ?" q9 L$ Z0 t
    8.   -h, --help           show this help message and exit
      ; i3 S6 F: @, w* \
    9.   --type [{pdf,html}]1 ~* ~: V1 _% H% V9 u8 j6 n- u3 w6 E
    10.   --invalid {0,1,2}    action for meeting invalid words* F! s- g; H6 L- g+ k" U9 T: n
    11.                        0: exit immediately  }: m$ g% d' O) a- \2 L
    12.                        1: output warnning message
      9 I! B2 {1 u6 k- ]5 n
    13.                        2: collect them to invalid_words.txt (default)                        
    复制代码

    2 u, ]0 C! ^, a
    7 {1 P* {. J1 S# |1 |: p
    例如:
    1. MdxConverter 某某词典.mdx input.xlsx output.pdf
    复制代码
    # I5 a' j& i5 \$ \4 \0 m+ t

    4 {, G7 p) R5 k9 e7 q: \输入
    ; l8 k+ W7 @1 d. a) d+ {txt 示例
    1. #Lesson 1
      8 Z5 Q/ O2 ~2 M% M
    2. hello
      1 Y/ W# n- _9 f8 t9 W$ r+ W5 K4 n
    3. world
      ; s- h4 z7 y6 m% p

    4. 0 v- M$ Q( ~7 {9 ~; G. }6 b0 G0 j
    5. #Lesson 2, ^7 r# j( m; ]- h, `
    6. python9 |! V/ m/ v0 F
    7. is
      # C: n' f) N+ i3 ?; G
    8. awesome
    复制代码

    & g, l2 [" @4 v  z+ {json 示例
    / D7 X2 d6 o5 W4 p$ ^( D' \0 P8 Z
    1. [8 z* C4 N0 R, M
    2.     {
      9 Z3 E' P9 J4 |2 ?5 m/ @( x( o
    3.         "name": "Lesson 1",
        p: i! q4 ^$ v& Y: M
    4.         "words": [5 E' Z: ^$ r: |2 v% y3 l1 Z
    5.             "hello",7 b$ v& m" R  x8 n& i
    6.             "world"
      ; S) o! Z  ^4 v" g
    7.         ]. `! V" ]% R! D
    8.     },
      # u6 f: e* r* i
    9.     {
      & z  g3 ~: T- J+ u% _
    10.         "name": "Lesson 2",
      4 [- f9 t, N6 B+ r, k/ g
    11.         "words": [! C) S& t- {6 Y# W: _- }! s( O
    12.             "python",$ Y, B" u% ~. w1 `/ ~! P0 N
    13.             "is",. p+ c$ ?/ R1 K& T" K0 H, k; L9 ^  l
    14.             "awesome"6 L) X# t# p7 G' y, S7 Y: R
    15.         ]
      % l" x) I+ w5 O7 E
    16.     }
      : S2 m2 p& {. ~% C" U
    17. ]
    复制代码

    ' g" ?, W6 ~% y& ], r% E, m3 }- hexcel 示例
    0 o. i: S: @: P" F1 s# H/ @. U0 w9 b( Y+ `$ N0 n. ^
    & H6 M; [2 i% |- Z. P, n
    输出
    6 b% L% A- F" k(图片怎么弄都出不出来,我放弃了)0 Y! J& ~4 t) E5 n1 ~% [5 l( }
    HTML' S" A/ o  A  Z: c) h1 K
    ) x; G2 I3 E5 ]# m* E- F
    PDF& l0 E0 H1 R8 [& ~% R

    ' A' @2 O, W/ I) y+ u6 D0 M+ L) ^9 c, P. f5 f3 L+ I
    - h$ a$ s# d  a! k

    ; k. u' N# o6 v  E/ [! r* S& {0 r4 [1 r: l" q

    本帖子中包含更多资源

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

    x

    评分

    4

    查看全部评分

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

    [LV.1]初来乍到

     楼主| 发表于 2020-2-29 08:11:44 | 显示全部楼层
    johannhuang 发表于 2020-2-29 05:334 T$ B2 o/ I$ r( _4 U  T8 |9 p
    但你这样一没有就退出 我觉得改词表会改到怀疑人生何苦 不如用Python 讽刺 ...
    " d4 j% o& t* W. k
    可能是你选的词典词不够全。& D/ I! U  `# X9 Y" w" a
    反正开源的,你觉得怎么样好,可以自己改。3 E# Z& m$ E/ q+ }4 Y$ s8 U
    这就是一个我给自己家熊孩子写的,让她学新单词时用的的小工具,做好后顺便放出来,现在已经满足我的预期要求了。
  • TA的每日心情
    开心
    2018-8-8 03:13
  • 签到天数: 1 天

    [LV.1]初来乍到

    发表于 2020-3-22 16:12:31 | 显示全部楼层
    本帖最后由 喬治兄 于 2020-3-22 16:32 编辑 8 v( w8 z7 l! X. }% G

    9 g7 \& C+ Y: K1 H# m1 S- enoword2k 兄:
    % `5 q, T" z: d4 [, j! X! Ahtml 說明圖沒顯示出來.....
    - A/ ]/ ^( w& u+ B7 }1. 起問是否一個 headword 生成一個 html 檔案 or 多個的 html 檔案根據 headwords 多少個就多少個 html
    / }. f- o) i( k. Z- Q2. 若想生成全部的 headwords 該如何使用.....
    % a6 }$ `% I6 k* y# f. E& c0 H, Q5 R" Q3. filename  可否和 headword 相同來生成9 n% R) j4 E* O( r$ i0 G& `
    可否再請仁兄指點迷津解惑一下.....
    0 s, r# O0 J4 T9 R3 jThanks a lot
    ' k& \3 V( |: l7 V4 H# W2 Q6 U+ D, ?, {) g
  • TA的每日心情
    开心
    2020-2-29 08:12
  • 签到天数: 1 天

    [LV.1]初来乍到

     楼主| 发表于 2020-2-28 17:54:45 | 显示全部楼层
    johannhuang 发表于 2020-2-28 15:29
      |2 @" r7 b# B热情很棒 不过出错就重新编辑的逻辑有点不好哦 建议加try...catch
    7 `# j. Q+ ^6 O9 V
    可以判断返回的结果是不是为空,为空的话输出警告信息什么的。
    5 o# U$ B" T& Q) R9 }但是就怕用户不仔细看输出信息,从而漏了单词,干脆出错强制退出。9 ?, g# n9 [) @2 c$ v) z' n3 b
    不喜欢用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
    0 t& x8 M. L: ]3 t8 F. b; ^谢谢!下载了.exe后,怎么用?

    ) ?7 q3 L5 h. x6 w+ [( ^$ }) x更新了一下帖子,增加了简单说明
  • TA的每日心情
    开心
    2020-2-29 08:12
  • 签到天数: 1 天

    [LV.1]初来乍到

     楼主| 发表于 2020-2-28 11:48:50 | 显示全部楼层
    neilzhu 发表于 2020-2-28 11:11
    ! O0 [! j; f& q0 M这个程序挺实用的,可惜不会python。正在下载exe,不知道有没有比较好的说明书之类的,希望能会用 ...
    , D* K, [! Y# j/ ?# F8 {: d
    更新了一下帖子,增加了简单说明
  • 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
    2 B- ~7 f2 g5 U/ K5 n可以判断返回的结果是不是为空,为空的话输出警告信息什么的。6 e6 [4 U5 C: h* u4 ]1 f( s
    但是就怕用户不仔细看输出信息,从而漏了 ...

    4 N" s+ ^3 h- j2 @% w但你这样一没有就退出 我觉得改词表会改到怀疑人生何苦 不如用Python 讽刺
  • TA的每日心情
    开心
    2020-2-29 08:12
  • 签到天数: 1 天

    [LV.1]初来乍到

     楼主| 发表于 2020-2-29 08:45:05 | 显示全部楼层
    johannhuang 发表于 2020-2-29 05:33
    4 Q% H- A+ W# Y0 ~7 z$ K' [但你这样一没有就退出 我觉得改词表会改到怀疑人生何苦 不如用Python 讽刺 ...

    + f/ H  [$ b/ b想了一下,还是从善如流,反正是举手之劳。; ^3 \0 M# h% j9 C- x" x
    新版的遇到没查到的单词,会显示警告信息,然后继续。
  • 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
    3 g# F1 a" j- e* V* h已经试用了昨天的exe版,新版的正在下载。昨天的那个版本基本能用起来,但经常报错,可能是查不到所列的单 ...

    " f% \4 l) t# O/ h' f: E1 W现在是找不到的单词,在html或pdf中显示 warning 信息。
    # I* Y- a8 p- c+ U8 z  I  d1 c考虑统一放在最后,单独一组invalid words。4 J" o  T7 F8 j* p
    等有空再搞。
  • 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 | 显示全部楼层
           谢谢楼主的辛勤劳动与奉献分享,小工具挺实用。
    & t3 O# M6 W  Q8 s5 q$ P: n. U) x4 M# }" Q' |

    该用户从未签到

    发表于 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 | 显示全部楼层
    楼主太给力了 赞赞赞
    % z2 Y& ^: F) f& J* Z5 P
    您需要登录后才可以回帖 登录 | 免费注册

    本版积分规则

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

    GMT+8, 2024-4-26 03:53 , Processed in 0.059746 second(s), 11 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2023, Tencent Cloud.

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