掌上百科 - PDAWIKI

 找回密码
 免费注册

QQ登录

只需一步,快速开始

查看: 5250|回复: 72

[工具] 写了个抓取特定单词,生成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 编辑
    ! P9 V$ ~7 L; z0 h' d
    3 t% _0 g" n4 L7 ]
    $ S$ B) Y( N# Z$ g3 pexe下载地址:
    6 |  S2 B# d1 e
    % |4 ~  t; {+ x9 k7 g4 ^" Y) C: r/ @( T& l9 u
    一个用来从 mdx 字典中抓取所需的单词,并生成 html 或 pdf 文件的小工具。( O5 d6 U! L( k( k; z" u
    学新单词的时候,一次生成所需的单词解释、例句。
    3 u; R# i9 T' `7 S! y1 _! W输入支持xls, xlsx, json, txt,输出支持html和pdf。3 M* e. M& p9 p1 M5 o4 G2 o; J3 {
    这个工具没有GUI界面,我也没兴趣做一个GUI界面,不会用命令行的同学就忘了这个吧。, g! B# L5 R* z1 }' }' U

    & K5 c, I0 H4 ?4 K5 U$ \关于怎么使用$ w% c  w* o( S6 E! l
    比方说你希望收集以下单词
    . D5 {5 b. i2 m7 WLesson 1:hello world
    2 h% W8 f0 M% E" l. _) y& e# uLesson 2:this is a test
    % a) a( m( @9 X% A" {% ~2 ~Lesson 3: .....) ^: a% P+ l6 k
    " C! ^: Z1 x' s2 M. L
    你可以编辑一个txt,一个单词一行,课程名称用#开头,格式如下:
    " b1 [- _9 N# |/ a% Y7 \#Lesson 1
    + ^  y/ p3 Q1 s" L9 Q) thello
    4 D2 s( N4 @: x) S9 x# @5 O" Fworld8 j! k( w" c0 c' j2 @- v9 a3 h( E# J
    #Lesson 2/ f7 z( h. V+ ?6 a7 [
    this- K7 I+ E+ s9 F
    is
    % I5 |2 X* E2 R1 t. Q/ s* S' ^4 `a
    2 v6 v9 o* s( I6 r! L- D6 ~test
      s0 f% x4 ~" [( M2 {* G1 M#Lesson 37 b* d+ y! m; i
    ....
    ; [7 I& N5 u# f6 \# F' Y3 c/ U) x9 w
    也可以编辑一个excel表格,一个sheet就是一个课程,sheet名称就是课程名称,单词排列在第一列上
    2 T! E5 Y( [. P: z4 }' e也可以编辑一个json文件,不再赘述。
    ' L3 f# m1 w( k
    + ]  |, ~7 Z" u/ U7 T6 A然后在命令行下运行" H) v/ s: R  q5 X$ {9 ?' K$ r$ o
    MdxConverter 【mdx字典名称】 【输入的文件名】 【输出的文件名(后缀为.html或.pdf)】
    8 t( ^4 S+ ~" Y3 S" V
    $ P+ h1 j( B9 I6 i) H. J注意:如果有mdx词典中不存在的单词,程序会显示报警信息,默认动作是收集到invalid_words.txt中。你可以设置运行参数8 x; ~. m" X8 ]" {# S
    --invalid 0 立即退出
    5 {: J: ]5 c( k) A' \( T--invalid 1 输出警告信息到html/pdf中
    4 ~7 R4 B$ ~. n: n, H( H" g; |
    & F& _8 {* L: E; ^7 P用法
    1. usage: MdxConverter.exe [-h] [--type [{pdf,html}]] [--invalid {0,1,2}]
      7 q  w1 ~; a6 j' m* b% C* p. e) a
    2.                         mdx_name input_name [output_name]6 T$ |8 Z( y( h6 f6 _
    3. positional arguments:
      6 {8 c3 }: O9 G) \7 M& S# o
    4.   mdx_name
      . H) X3 F7 E3 T; k7 j( U# |
    5.   input_name
      / E8 S2 {4 H1 R! h& X* I6 {
    6.   output_name
      # X9 E- n/ B1 j4 H+ p' |, t" r
    7. optional arguments:
      5 S- l  z1 y; V7 [
    8.   -h, --help           show this help message and exit0 c1 Q1 h$ m5 h- T" ~
    9.   --type [{pdf,html}]
      2 _' f: X  @0 `
    10.   --invalid {0,1,2}    action for meeting invalid words, V. B6 H1 f2 z; j
    11.                        0: exit immediately. u) ^4 x. Z9 b$ J/ m
    12.                        1: output warnning message4 \8 @; X  }: w, v, F
    13.                        2: collect them to invalid_words.txt (default)                        
    复制代码
    7 x2 ~+ J) Y8 G! _' J( ~8 z0 `1 r

    8 h7 [1 C" J) c) D' b
    例如:
    1. MdxConverter 某某词典.mdx input.xlsx output.pdf
    复制代码

    4 w. E9 [! R# [/ X, y3 w
    . i4 s" Y- O& f8 a/ @2 j% U输入
    2 K0 W: R0 R! N- i; E7 z8 qtxt 示例
    1. #Lesson 1) a  w& Z2 y0 n# T
    2. hello' Q0 B) b& d  q: m: V0 t" G
    3. world% ^7 h! t% V- `$ h: ~, W

    4. 0 s( `" j% {4 |& }4 E
    5. #Lesson 2; q/ d' X; k( `: h- Q. G
    6. python4 Q, C4 ]! x% G/ K; V- t( Y% w
    7. is
      8 i" x* k$ ^9 q8 j1 j
    8. awesome
    复制代码
    5 C% l+ R3 p$ _3 z4 ?$ s0 g1 R
    json 示例
    8 }' Z, Z8 m+ X
    1. [
      ! A1 n/ @& }( b; M5 C
    2.     {
      2 ?5 a5 E# Z- N* ?4 d
    3.         "name": "Lesson 1",# X' v/ g; l' o$ f& r6 d/ o
    4.         "words": [
      * k. j" l2 Y$ {( X
    5.             "hello",
      & `* P9 Q: I+ ~1 s. f. b7 m7 P
    6.             "world"+ w. A" X2 l( z$ c. }" |
    7.         ]
      ; \/ n8 c, r3 V6 P" u
    8.     },
      0 q5 f& {) s9 m7 @5 _" H1 v, D  ]
    9.     {  A5 q. \( [' o: Z  W
    10.         "name": "Lesson 2",& p: n4 ^5 w7 O
    11.         "words": [. m5 d5 u- }' h  i" |" N
    12.             "python",
      1 O6 l8 t7 f: j" x. ^! z& [) f
    13.             "is",
      / h% h8 D% K; h. M
    14.             "awesome"
      9 d4 N" L+ X# I; E) M7 m' D
    15.         ]
      ' ~& E+ d5 j, ?: D3 R* z: |
    16.     }
      ' b9 l7 r" b6 U
    17. ]
    复制代码
    : v7 _4 M. L  a/ |4 O. z$ h8 S" d
    excel 示例) ~7 s  B( s  ^, [. c  l
    . Q0 \# q3 N! }+ W2 w, Q

    2 Z  s! {; `: h; e) U* o输出+ P. U+ i8 A7 x2 F2 z% G8 q+ T
    (图片怎么弄都出不出来,我放弃了)$ x% D$ n, V2 }8 s0 w2 G, d6 m
    HTML
    , Z/ @5 m6 h% a% f+ d0 n0 \$ L# C2 j" a& o" K- `
    PDF
    - h! o& T0 e. e' q5 ~! Z3 T3 \7 H* Q- w+ @1 V: r
    : ^- W8 z5 n) ]  k- c, T0 t

    / T1 w: e8 I/ m" f
    3 a. w# D& t6 J! i7 e0 r& Z# S2 q! b9 g7 t- Q) r7 p6 V3 U

    本帖子中包含更多资源

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

    x

    评分

    4

    查看全部评分

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

    [LV.1]初来乍到

     楼主| 发表于 2020-2-29 08:11:44 | 显示全部楼层
    johannhuang 发表于 2020-2-29 05:330 F- E1 [) \- j, K8 R7 q
    但你这样一没有就退出 我觉得改词表会改到怀疑人生何苦 不如用Python 讽刺 ...
    ' _3 b) I( i: L- m" J. o7 C; {- L6 N( V
    可能是你选的词典词不够全。
    0 V; k/ V8 v/ U$ I. K  E% P, Z& o' p反正开源的,你觉得怎么样好,可以自己改。/ a+ \! @- c0 e* R; a/ \& h
    这就是一个我给自己家熊孩子写的,让她学新单词时用的的小工具,做好后顺便放出来,现在已经满足我的预期要求了。
  • TA的每日心情
    开心
    2018-8-8 03:13
  • 签到天数: 1 天

    [LV.1]初来乍到

    发表于 2020-3-22 16:12:31 | 显示全部楼层
    本帖最后由 喬治兄 于 2020-3-22 16:32 编辑
    , d* {# b9 x# G* g9 g' g, y6 J' I7 Q6 w$ F, c1 C+ Z' f
    noword2k 兄:& x* G$ `, U) c" ~1 N
    html 說明圖沒顯示出來.....
    2 W6 ?* I7 _9 G$ D4 t1. 起問是否一個 headword 生成一個 html 檔案 or 多個的 html 檔案根據 headwords 多少個就多少個 html
    0 v3 R1 s& v# [/ d. \+ ~2 S2. 若想生成全部的 headwords 該如何使用.....  ]% P: ?; H! ]: X1 x3 a
    3. filename  可否和 headword 相同來生成* ]0 A" N  i: T. Z
    可否再請仁兄指點迷津解惑一下.....
    2 j6 e/ U/ }; L8 `Thanks a lot: d: E  F% d7 a% X6 N- J, X( d8 X

    ! F9 B- O8 ~, R0 r
  • TA的每日心情
    开心
    2020-2-29 08:12
  • 签到天数: 1 天

    [LV.1]初来乍到

     楼主| 发表于 2020-2-28 17:54:45 | 显示全部楼层
    johannhuang 发表于 2020-2-28 15:29
    % v2 k) m" ~. m( G) [  ?热情很棒 不过出错就重新编辑的逻辑有点不好哦 建议加try...catch

    5 T/ M# F, N* k& i% D/ w可以判断返回的结果是不是为空,为空的话输出警告信息什么的。) J& H+ X4 N+ z! y& \( O
    但是就怕用户不仔细看输出信息,从而漏了单词,干脆出错强制退出。6 [* Q4 D- w) K7 s
    不喜欢用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$ X8 b4 ?. T* k/ u1 x
    谢谢!下载了.exe后,怎么用?

    : W. i0 R. \6 W$ ]$ c( J更新了一下帖子,增加了简单说明
  • TA的每日心情
    开心
    2020-2-29 08:12
  • 签到天数: 1 天

    [LV.1]初来乍到

     楼主| 发表于 2020-2-28 11:48:50 | 显示全部楼层
    neilzhu 发表于 2020-2-28 11:11
    ) N. O. G" l8 s8 P2 r2 _这个程序挺实用的,可惜不会python。正在下载exe,不知道有没有比较好的说明书之类的,希望能会用 ...

    $ ^6 F% e" H7 F2 A2 @更新了一下帖子,增加了简单说明
  • 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:544 v# O6 p, c9 D/ ~0 f' J; {
    可以判断返回的结果是不是为空,为空的话输出警告信息什么的。+ \' [2 L- c& G4 E
    但是就怕用户不仔细看输出信息,从而漏了 ...
    . ~/ O' i, a, C& ?3 X
    但你这样一没有就退出 我觉得改词表会改到怀疑人生何苦 不如用Python 讽刺
  • TA的每日心情
    开心
    2020-2-29 08:12
  • 签到天数: 1 天

    [LV.1]初来乍到

     楼主| 发表于 2020-2-29 08:45:05 | 显示全部楼层
    johannhuang 发表于 2020-2-29 05:33) }( X' Q8 C+ b, f, X8 h
    但你这样一没有就退出 我觉得改词表会改到怀疑人生何苦 不如用Python 讽刺 ...

    ) W/ k8 l. {: J' u2 j& `想了一下,还是从善如流,反正是举手之劳。
    4 M/ v& Z, k$ N4 B+ d4 Z新版的遇到没查到的单词,会显示警告信息,然后继续。
  • 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
    . v8 t$ I+ y  X% S已经试用了昨天的exe版,新版的正在下载。昨天的那个版本基本能用起来,但经常报错,可能是查不到所列的单 ...

    ! }! i) f' J# v% R现在是找不到的单词,在html或pdf中显示 warning 信息。
    ! v7 P  }* [& |* @) c. y! K考虑统一放在最后,单独一组invalid words。9 b( b* s. R3 o+ a& i' A
    等有空再搞。
  • 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的每日心情
    慵懒
    7 小时前
  • 签到天数: 1693 天

    [LV.Master]伴坛终老

    发表于 2020-3-9 03:20:40 | 显示全部楼层
           谢谢楼主的辛勤劳动与奉献分享,小工具挺实用。
    + I) m$ _7 F# y2 c% ?
    % h# c) `8 \9 p' h, i; 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的每日心情
    开心
    2024-1-31 11:34
  • 签到天数: 928 天

    [LV.10]以坛为家III

    发表于 2020-3-22 16:34:57 | 显示全部楼层
    楼主太给力了 赞赞赞
    . X+ Y, f6 m- c8 k3 A; Q
    您需要登录后才可以回帖 登录 | 免费注册

    本版积分规则

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

    GMT+8, 2024-3-29 14:47 , Processed in 0.048533 second(s), 11 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2023, Tencent Cloud.

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