掌上百科 - PDAWIKI

 找回密码
 免费注册

QQ登录

只需一步,快速开始

查看: 5573|回复: 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 编辑 0 x6 J) ?: P, j9 A
    4 {( P' {- x/ D

    & b3 z4 a6 K/ R& L. Rexe下载地址:
    + Q+ v% A5 D9 Z# x) v
    3 n2 }* V2 }0 e, X' ?4 F$ [
    ) I- u8 y) v6 U一个用来从 mdx 字典中抓取所需的单词,并生成 html 或 pdf 文件的小工具。
    , N- x& U9 ]0 N' B3 I. v5 i学新单词的时候,一次生成所需的单词解释、例句。7 k% l* I6 _& ~# _4 I
    输入支持xls, xlsx, json, txt,输出支持html和pdf。0 t- P5 w$ V. I9 q
    这个工具没有GUI界面,我也没兴趣做一个GUI界面,不会用命令行的同学就忘了这个吧。
    / z5 k7 I) b- n( m* Y2 g% n  k# n6 D
    关于怎么使用
      |, b: r" W9 r+ M  O比方说你希望收集以下单词
    5 G6 e! S2 O* U) u4 ELesson 1:hello world& H% b' R3 F4 X6 k0 _3 Q! H( y" U$ a
    Lesson 2:this is a test4 B* S3 \: z1 W  `3 s
    Lesson 3: .....
    ) k) |5 W! P3 _- T  Z9 f- g- }! q/ N3 o& N$ h, Y
    你可以编辑一个txt,一个单词一行,课程名称用#开头,格式如下:: m  k: S6 P3 D% O: z) \
    #Lesson 1
    $ I% G/ A/ Q8 Z7 O4 g; R# v: khello
    6 S* }# O- n0 a+ fworld. M; h1 H: T- A2 I. J. V+ B) c8 H
    #Lesson 2) F" D# L+ P. [( W; L
    this
      W- _/ _( A% Q1 zis( G) K' F  v* |3 ^7 g' x- Z3 r
    a
    + R& X- u6 Z7 |4 P* vtest! U0 x# \7 |: ?$ ?
    #Lesson 3% X& _, B+ L6 y2 `' G
    ....
    / ~7 F- x1 U2 |: O& A! J( Y, |& W2 i8 y
    也可以编辑一个excel表格,一个sheet就是一个课程,sheet名称就是课程名称,单词排列在第一列上
    ! R/ W4 d5 {$ }也可以编辑一个json文件,不再赘述。
    . D( j7 y7 B, H3 d8 ?" Y% F% u0 u$ s
    然后在命令行下运行
    4 L- S% b$ W( f& GMdxConverter 【mdx字典名称】 【输入的文件名】 【输出的文件名(后缀为.html或.pdf)】; [# R4 n! L, r. K+ i
    ( ~; O. P- u* u& H
    注意:如果有mdx词典中不存在的单词,程序会显示报警信息,默认动作是收集到invalid_words.txt中。你可以设置运行参数
    : f+ V$ {8 {  V7 E) y* r--invalid 0 立即退出
    . s8 i# C6 ]+ J--invalid 1 输出警告信息到html/pdf中& }) e9 _2 x4 g) q
    # S1 d1 U3 C& {- @5 b& k
    用法
    1. usage: MdxConverter.exe [-h] [--type [{pdf,html}]] [--invalid {0,1,2}]
      % x2 H: H5 U2 v0 T& v' ^, }
    2.                         mdx_name input_name [output_name]7 {/ j6 z; k2 }3 V& y2 G
    3. positional arguments:2 h  l4 \9 J/ J
    4.   mdx_name
      " R2 U# [7 `. E5 D! {! S7 \
    5.   input_name4 o+ Y- I2 d) N8 y2 S* D
    6.   output_name
      ' y' ^* I0 _8 S/ A& C, W. W/ [
    7. optional arguments:& [# j- l; C# u* O7 O& v% `
    8.   -h, --help           show this help message and exit2 s% P: v$ N8 C5 J7 ?& I9 i
    9.   --type [{pdf,html}]* j: }( S" M& T0 R/ k* a
    10.   --invalid {0,1,2}    action for meeting invalid words
      / w; t1 @7 u, Z' `* c6 p' {' J
    11.                        0: exit immediately  L, @2 G: p! T. [) _1 b- [! L
    12.                        1: output warnning message% e5 p6 h$ k4 S+ `
    13.                        2: collect them to invalid_words.txt (default)                        
    复制代码
    4 U, R# j( l6 V9 Y+ y
    7 L* |( `% |- i6 K& i
    例如:
    1. MdxConverter 某某词典.mdx input.xlsx output.pdf
    复制代码
    0 k  y* N. z4 m# M" ]
    1 H. a; s, I! F1 f  X/ k" T7 k
    输入
    / \2 [7 z0 j- \txt 示例
    1. #Lesson 1- I) x$ Y- U2 {! P: X0 m* ~2 I
    2. hello, h+ S3 V$ _# M) @, P
    3. world1 u/ {( p) ]2 d2 Y6 z4 k; W4 J* C

    4. $ N  v2 d1 c4 }/ I
    5. #Lesson 2
      $ I& u9 h3 g- X2 d7 d; N  I/ Q
    6. python1 o3 @- B. |. G$ C9 S2 M
    7. is
      , X( j  R" J4 l' M9 f4 [6 g# R+ c
    8. awesome
    复制代码

    - Z, J. X8 M1 Yjson 示例
    * V: |* x6 }. d1 `/ |% R
    1. [$ e! B2 a& V7 W' N5 N2 {- ?
    2.     {$ I, Z9 y0 t" P" i
    3.         "name": "Lesson 1",
      # \6 a8 R& g# u' i0 c2 r8 V
    4.         "words": [/ @6 R, m" k0 E7 V8 u  K
    5.             "hello",4 U) ]6 ^, P. F/ T/ u
    6.             "world"
      ( p* d4 i. D3 z$ u8 B5 U
    7.         ]
      , o* Q. O+ z, l$ Z# o/ m/ ?0 d0 E) c  a
    8.     },; m- d' T6 g; R
    9.     {% {' ^7 C/ S# K* v; S  g' y' y
    10.         "name": "Lesson 2",$ a" b# c: M* J7 K( D
    11.         "words": [6 M& q8 Y# q5 Z3 i
    12.             "python",# C) e" i9 q: w$ ]8 \6 L2 Q1 F
    13.             "is",
      1 }( d# m" `  }1 o; B
    14.             "awesome"
        V9 D% ]. ^8 w
    15.         ]' |0 @1 {0 x! j
    16.     }
      ( D( j- _3 T4 [' D' n
    17. ]
    复制代码

    % G0 C- C8 D! p# x8 gexcel 示例. @% n, l. O- \! g- B6 [2 Q' ]

    # ^' C. q* f+ Q1 B& Q+ q' h" P
    输出
    6 ]$ \' p) n6 S1 m5 v(图片怎么弄都出不出来,我放弃了)6 c' V" A! L, l/ N- {# }% W# f
    HTML
    3 l' y7 Z$ z2 [6 L) J+ E0 Q% F( A4 p0 k9 u* A: V2 K
    PDF# _; V2 h4 {) j( g. c

    & ?8 j0 f* r6 c7 G. Z3 _+ u
    ! p0 `. B; z1 C) Q2 |! d. Z1 k; y9 |. H4 v3 `9 y( A% k& A. s; c
    ! A; |# ]" ?- z, L+ G; \; ~0 d

    0 i! O0 V' |3 D& ?' n( E

    本帖子中包含更多资源

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

    x

    评分

    4

    查看全部评分

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

    [LV.1]初来乍到

     楼主| 发表于 2020-2-29 08:11:44 | 显示全部楼层
    johannhuang 发表于 2020-2-29 05:33" m, E- g1 Q2 d! S- E2 U- K
    但你这样一没有就退出 我觉得改词表会改到怀疑人生何苦 不如用Python 讽刺 ...

    0 s! o4 e6 K  @( o% o( v" B! i; Q5 P( i可能是你选的词典词不够全。
    2 |) P; g- i) S4 {, r8 U反正开源的,你觉得怎么样好,可以自己改。$ {. f; m# f" M9 I
    这就是一个我给自己家熊孩子写的,让她学新单词时用的的小工具,做好后顺便放出来,现在已经满足我的预期要求了。
  • TA的每日心情
    开心
    2018-8-8 03:13
  • 签到天数: 1 天

    [LV.1]初来乍到

    发表于 2020-3-22 16:12:31 | 显示全部楼层
    本帖最后由 喬治兄 于 2020-3-22 16:32 编辑 ' |, I% g) I7 I6 g
      A$ Z: g# w- }1 C+ A( `0 r" n$ @
    noword2k 兄:
    $ E" `: K0 |% ~* c0 T9 L  Ihtml 說明圖沒顯示出來.....
    $ @& G# G! ?( G5 a- O1. 起問是否一個 headword 生成一個 html 檔案 or 多個的 html 檔案根據 headwords 多少個就多少個 html
    7 r& q+ ^( q7 G  s! G* ]  J2. 若想生成全部的 headwords 該如何使用.....
    ; j4 V6 ?/ `+ P9 v5 b* |8 A8 C# }3. filename  可否和 headword 相同來生成; Y4 B& w' v+ B8 E: Z9 N$ q
    可否再請仁兄指點迷津解惑一下.....+ _& p# f# f% b- L- u. c' U
    Thanks a lot, P& V8 a+ }7 Q$ o) O0 K4 m/ H
    " S+ I/ x8 V3 G$ B
  • TA的每日心情
    开心
    2020-2-29 08:12
  • 签到天数: 1 天

    [LV.1]初来乍到

     楼主| 发表于 2020-2-28 17:54:45 | 显示全部楼层
    johannhuang 发表于 2020-2-28 15:298 S6 ^" k" _9 u, @+ r( x" R
    热情很棒 不过出错就重新编辑的逻辑有点不好哦 建议加try...catch

    4 ^7 ]) f$ _8 F, `: L% ?可以判断返回的结果是不是为空,为空的话输出警告信息什么的。4 r6 n9 o7 f% q5 H( e" J" ?
    但是就怕用户不仔细看输出信息,从而漏了单词,干脆出错强制退出。% L: A/ D+ i4 {3 K- R0 k
    不喜欢用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, Q, `" M# K7 q3 {/ S9 `
    谢谢!下载了.exe后,怎么用?
      K: s- s% k3 v/ O- V
    更新了一下帖子,增加了简单说明
  • TA的每日心情
    开心
    2020-2-29 08:12
  • 签到天数: 1 天

    [LV.1]初来乍到

     楼主| 发表于 2020-2-28 11:48:50 | 显示全部楼层
    neilzhu 发表于 2020-2-28 11:11
    / l. `) ?7 s& T4 c这个程序挺实用的,可惜不会python。正在下载exe,不知道有没有比较好的说明书之类的,希望能会用 ...

      o" t$ J* S/ O更新了一下帖子,增加了简单说明
  • 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
    ( _3 [- f, p) I可以判断返回的结果是不是为空,为空的话输出警告信息什么的。+ N* B5 }: R  F+ }) S$ h
    但是就怕用户不仔细看输出信息,从而漏了 ...

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

    [LV.1]初来乍到

     楼主| 发表于 2020-2-29 08:45:05 | 显示全部楼层
    johannhuang 发表于 2020-2-29 05:33# R( @0 u. S5 Q) |0 u5 g  x
    但你这样一没有就退出 我觉得改词表会改到怀疑人生何苦 不如用Python 讽刺 ...
    . H3 e4 k" H: q. g" X& k
    想了一下,还是从善如流,反正是举手之劳。
    " u1 ~9 r& k6 G' q. _: F9 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
    ; v9 F  j0 X" ~$ J, S已经试用了昨天的exe版,新版的正在下载。昨天的那个版本基本能用起来,但经常报错,可能是查不到所列的单 ...
    $ F! L( A1 ~: p/ |' R
    现在是找不到的单词,在html或pdf中显示 warning 信息。
    , C& r& t' N  c5 t! w考虑统一放在最后,单独一组invalid words。8 V# f$ Y% L6 I* p0 G. S
    等有空再搞。
  • 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的每日心情
    慵懒
    12 小时前
  • 签到天数: 1724 天

    [LV.Master]伴坛终老

    发表于 2020-3-9 03:20:40 | 显示全部楼层
           谢谢楼主的辛勤劳动与奉献分享,小工具挺实用。5 E5 {! `- b# q1 A

    , q! P* I! g  }

    该用户从未签到

    发表于 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 | 显示全部楼层
    楼主太给力了 赞赞赞8 @0 V7 C6 B4 W! S5 E) L
    您需要登录后才可以回帖 登录 | 免费注册

    本版积分规则

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

    GMT+8, 2024-4-29 20:19 , Processed in 0.074329 second(s), 11 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2023, Tencent Cloud.

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