掌上百科 - PDAWIKI

 找回密码
 免费注册

QQ登录

只需一步,快速开始

查看: 5245|回复: 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 编辑 0 D  o+ p! q6 Z5 `1 w' d8 U9 N+ p. @
    ) p1 m. y6 Y$ {+ |/ B1 l
      W6 w! Z: @$ [6 K6 f
    exe下载地址:
    7 w5 F& s+ K8 H8 m; {0 w1 k: g- \5 f1 A
    " W$ p, h8 c: M0 A5 g
    一个用来从 mdx 字典中抓取所需的单词,并生成 html 或 pdf 文件的小工具。8 Z' A0 n9 o9 ]% Q  z
    学新单词的时候,一次生成所需的单词解释、例句。7 {" H1 Y: W# Q! O6 v6 F
    输入支持xls, xlsx, json, txt,输出支持html和pdf。
    - T; J+ G6 B/ O: C3 A: m+ I这个工具没有GUI界面,我也没兴趣做一个GUI界面,不会用命令行的同学就忘了这个吧。3 O4 m! M3 L3 d7 d. w7 t, a( s
    , @& N/ w0 d5 h) r
    关于怎么使用8 _4 g/ F" g3 T2 _
    比方说你希望收集以下单词
    ( J  k) O% }$ i8 a2 j8 O: pLesson 1:hello world
    4 Y( r( @& e# x! w6 iLesson 2:this is a test6 F% ~6 w3 r: R2 g! ?/ A. R. M
    Lesson 3: .....+ H1 G& t% K# N9 n$ l+ U, t/ w2 a

    : F& @4 o# u+ _$ @8 w你可以编辑一个txt,一个单词一行,课程名称用#开头,格式如下:
    ; X: N, c# e0 _! m#Lesson 1" w/ _* K9 j. D7 [9 `
    hello
    ! V% r+ m) S$ ?" H% U3 t4 e9 M, bworld
    ( E9 u) h2 j5 O  h# X#Lesson 2: i) c* l- B4 o! T/ a/ @
    this8 X- `5 n6 P; i
    is
    & a2 @& j8 ]* n$ U  Na
    4 X/ I. S4 N9 [* Atest1 F7 P; z7 s* \& e
    #Lesson 3. z2 p9 H3 u6 G3 [. E. o
    ....
    2 U7 g$ @7 J1 I5 w- h
    * {5 N2 U; R7 P7 j) }也可以编辑一个excel表格,一个sheet就是一个课程,sheet名称就是课程名称,单词排列在第一列上
    ! v% K. J& n' {: |也可以编辑一个json文件,不再赘述。2 b" i  V9 L7 m8 `& Y" }+ }

    9 U9 x) n' Y' e* Y  X& Z; X) G然后在命令行下运行- U7 z: M6 a- @" X$ O' k
    MdxConverter 【mdx字典名称】 【输入的文件名】 【输出的文件名(后缀为.html或.pdf)】' }$ e. V+ o3 M, _7 ^$ B
    % P5 J8 s4 @& H
    注意:如果有mdx词典中不存在的单词,程序会显示报警信息,默认动作是收集到invalid_words.txt中。你可以设置运行参数8 T- M' \2 C# Y$ y
    --invalid 0 立即退出
    # _% q% I5 [  U% t$ |/ d8 d  I--invalid 1 输出警告信息到html/pdf中
    0 P% s: @1 }% o$ u" K2 E3 i2 Y/ c) a( \/ _$ X& J1 w0 m
    用法
    1. usage: MdxConverter.exe [-h] [--type [{pdf,html}]] [--invalid {0,1,2}]* g" K# U: L9 X) x
    2.                         mdx_name input_name [output_name]
      % g* P0 r, f! p1 Y# d2 q' [
    3. positional arguments:
      , p4 S; w2 E! R9 Y' L( T) i
    4.   mdx_name
      2 z4 V. W: [2 T) v' I
    5.   input_name
      4 ?* o1 Q  g7 v' V) g% Z
    6.   output_name0 q8 g/ X( p5 j) g
    7. optional arguments:5 N* G5 W9 V- R  }( W+ w" N' s
    8.   -h, --help           show this help message and exit
      ; m( x  o9 z5 i* D' a
    9.   --type [{pdf,html}]5 T8 Z: |% o, }; Y
    10.   --invalid {0,1,2}    action for meeting invalid words) x  @+ C, V' U2 l
    11.                        0: exit immediately
      - S8 g2 {5 c. @* G3 ?+ {
    12.                        1: output warnning message
      1 _  c/ {1 r- Y! @. P; V' [
    13.                        2: collect them to invalid_words.txt (default)                        
    复制代码
    : ?- O! H' f/ A

    ( o( Y% \: f1 D1 K$ ]# \6 y
    例如:
    1. MdxConverter 某某词典.mdx input.xlsx output.pdf
    复制代码

    / ^( d5 F+ q* k$ _  J. c3 X  c  i& X/ f/ }1 G. }" P
    输入( }2 _: K+ x& M3 _
    txt 示例
    1. #Lesson 1
      + Q5 B7 m$ I9 _% o4 [
    2. hello2 [8 x2 i( y! i
    3. world
      6 F/ i7 P5 t. w. G% y3 K
    4. % I2 v+ d. Z( Q/ w. z1 A" I: a# X+ O
    5. #Lesson 2
      # l9 h) p+ t) i. `9 {4 J( B
    6. python
      5 T9 k3 t+ |: R
    7. is
      6 Q; |7 X8 q, t4 S6 V. T  R5 c0 M
    8. awesome
    复制代码

    4 s0 [) @0 V# [0 fjson 示例
    ' D; S) T% \' x5 }* n/ c
    1. [" s& I1 Z9 H0 d# E9 S
    2.     {, {- M5 m0 V0 ^6 I; [1 k
    3.         "name": "Lesson 1",  [: t3 d0 y6 T+ b9 }
    4.         "words": [
      + J& r6 c6 B0 o. s  T
    5.             "hello",
      . o) k& j( z! o) s0 v
    6.             "world"
        r5 ^% }. n; q" y# j: s
    7.         ]
      ! k! N1 @1 I( R$ f4 E: ], H4 h; f6 C
    8.     },
      ; E/ y, Y6 J3 R
    9.     {
      + `6 y4 Q0 ^$ ?1 f8 d( ]3 y, s
    10.         "name": "Lesson 2",
      % ~2 n6 C  O# K) z0 y; B
    11.         "words": [4 ]: r0 F2 B) J1 y% R! H
    12.             "python",# o% m" M) p$ E0 g; r
    13.             "is",, i. S. \( T2 h3 V3 L
    14.             "awesome"
      ; k6 B& c1 G  n0 M7 T2 x- s' c
    15.         ]
      9 K8 ?( H2 t9 l% w8 i5 v+ _/ ~6 T
    16.     }: \3 \6 Q+ y0 ?
    17. ]
    复制代码

    2 S! v2 P, f5 nexcel 示例
    1 e" k, Z) h2 p* C( I# G+ o: Y4 z/ w2 |- h+ Y+ r2 e

    % }3 C0 a$ i/ V2 A输出7 s( P) c2 U8 l% |9 j
    (图片怎么弄都出不出来,我放弃了)6 k  M5 Z7 B  u( @  g4 W* c
    HTML
    1 o; a- I& W4 M5 e! F) ^
    , w- R. @% O0 A7 ]' r) FPDF
    + W# Y% B3 e' t$ v7 g$ _
    . O; A3 c' G+ ]% y- L! B
    ) X) v8 d8 U' K8 X1 R! k; t3 J8 P5 s3 A9 a9 |0 G0 h. K0 L

    9 p  D' V9 r& |/ x/ k1 J
    " b# q6 s/ ]6 Y$ T" C! P

    本帖子中包含更多资源

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

    x

    评分

    4

    查看全部评分

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

    [LV.1]初来乍到

     楼主| 发表于 2020-2-29 08:11:44 | 显示全部楼层
    johannhuang 发表于 2020-2-29 05:33. r2 E# q: p: r  ^7 h
    但你这样一没有就退出 我觉得改词表会改到怀疑人生何苦 不如用Python 讽刺 ...

    , {5 b9 n* W& l3 H3 v7 E/ E$ M可能是你选的词典词不够全。
    / J. d% x/ s5 [/ y反正开源的,你觉得怎么样好,可以自己改。
    + c6 F; B7 F5 S; _1 |. [/ @  G这就是一个我给自己家熊孩子写的,让她学新单词时用的的小工具,做好后顺便放出来,现在已经满足我的预期要求了。
  • TA的每日心情
    开心
    2018-8-8 03:13
  • 签到天数: 1 天

    [LV.1]初来乍到

    发表于 2020-3-22 16:12:31 | 显示全部楼层
    本帖最后由 喬治兄 于 2020-3-22 16:32 编辑
    ) n; e, A  I; L. g7 O% G7 u5 ^3 u0 m1 b) J
    noword2k 兄:# ]: _. d- l6 L$ T6 m9 G
    html 說明圖沒顯示出來.....
    + e/ q) ^7 u) D0 r- g1. 起問是否一個 headword 生成一個 html 檔案 or 多個的 html 檔案根據 headwords 多少個就多少個 html
    3 [* Z  h- x$ q9 m% ~3 c2. 若想生成全部的 headwords 該如何使用.....
    & R, N5 M+ J/ V) [* a1 }5 R& w% n3. filename  可否和 headword 相同來生成% p5 ~  g+ L0 j7 A( r1 w5 l
    可否再請仁兄指點迷津解惑一下.....; x$ m6 ?6 Q: C
    Thanks a lot
      ?/ `3 l( U: T% ~& V% _* V# {& w3 K* x( ^4 X5 g+ [
  • TA的每日心情
    开心
    2020-2-29 08:12
  • 签到天数: 1 天

    [LV.1]初来乍到

     楼主| 发表于 2020-2-28 17:54:45 | 显示全部楼层
    johannhuang 发表于 2020-2-28 15:29& k4 q0 T5 |2 P" ?$ n* d- ^
    热情很棒 不过出错就重新编辑的逻辑有点不好哦 建议加try...catch

    6 n5 {- V" L* z5 G4 D  _" i& R6 N可以判断返回的结果是不是为空,为空的话输出警告信息什么的。
    $ i: t/ t2 d( f0 n, K- O  z) d1 c但是就怕用户不仔细看输出信息,从而漏了单词,干脆出错强制退出。
    6 Z0 _! N- F& q! k! o* h2 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:34
    5 i0 E$ Z1 C: G( S2 o( H/ u. Q谢谢!下载了.exe后,怎么用?

    , w+ w( m2 g9 R- a" L$ A0 ^更新了一下帖子,增加了简单说明
  • TA的每日心情
    开心
    2020-2-29 08:12
  • 签到天数: 1 天

    [LV.1]初来乍到

     楼主| 发表于 2020-2-28 11:48:50 | 显示全部楼层
    neilzhu 发表于 2020-2-28 11:113 C/ Q! y  h4 {1 [( \5 T$ ?
    这个程序挺实用的,可惜不会python。正在下载exe,不知道有没有比较好的说明书之类的,希望能会用 ...

    $ C/ p) W8 y/ K+ [4 ]# y* K更新了一下帖子,增加了简单说明
  • 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
    ! t) r4 U- V3 t) e) ?2 m可以判断返回的结果是不是为空,为空的话输出警告信息什么的。
    % e8 q9 k, D2 B但是就怕用户不仔细看输出信息,从而漏了 ...

    ) q! w, m, `9 c' C但你这样一没有就退出 我觉得改词表会改到怀疑人生何苦 不如用Python 讽刺
  • TA的每日心情
    开心
    2020-2-29 08:12
  • 签到天数: 1 天

    [LV.1]初来乍到

     楼主| 发表于 2020-2-29 08:45:05 | 显示全部楼层
    johannhuang 发表于 2020-2-29 05:33
    , s) N* P: T* ^/ K1 W, d但你这样一没有就退出 我觉得改词表会改到怀疑人生何苦 不如用Python 讽刺 ...
    0 G# l/ j( s7 \9 V2 }' J+ }
    想了一下,还是从善如流,反正是举手之劳。: \( C7 Z: h7 j, p! S) 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:179 D0 \2 r7 j3 L7 R" e; x; N+ v
    已经试用了昨天的exe版,新版的正在下载。昨天的那个版本基本能用起来,但经常报错,可能是查不到所列的单 ...
      \1 a5 ?* F/ c
    现在是找不到的单词,在html或pdf中显示 warning 信息。0 r+ `0 d2 d! G# h
    考虑统一放在最后,单独一组invalid words。
    8 q4 u! b& h( 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的每日心情
    慵懒
    10 小时前
  • 签到天数: 1692 天

    [LV.Master]伴坛终老

    发表于 2020-3-9 03:20:40 | 显示全部楼层
           谢谢楼主的辛勤劳动与奉献分享,小工具挺实用。* R- R; s. X1 L; r- o, y
    6 x4 @( b1 {  K/ J, E; F

    该用户从未签到

    发表于 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 | 显示全部楼层
    楼主太给力了 赞赞赞! s/ s! u! g7 n, ]6 K6 w) w
    您需要登录后才可以回帖 登录 | 免费注册

    本版积分规则

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

    GMT+8, 2024-3-28 18:39 , Processed in 0.046771 second(s), 11 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2023, Tencent Cloud.

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