掌上百科 - PDAWIKI

 找回密码
 免费注册

QQ登录

只需一步,快速开始

查看: 5557|回复: 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 编辑
    2 \' j( T# D" Z- x# ]+ [5 E# S' n1 c4 q! X

    7 V( ~! ~% w7 E  @. R2 Mexe下载地址:; C% i& a2 t- s8 }, Y
    $ t# K! n: N; U+ Y0 k) \" U

    * I) d/ |* @/ y; }1 p% }6 ^- A, r一个用来从 mdx 字典中抓取所需的单词,并生成 html 或 pdf 文件的小工具。9 D% P  v3 M8 B5 l( w
    学新单词的时候,一次生成所需的单词解释、例句。9 C6 T! m  B7 O9 k
    输入支持xls, xlsx, json, txt,输出支持html和pdf。: D: T7 r% z% ?
    这个工具没有GUI界面,我也没兴趣做一个GUI界面,不会用命令行的同学就忘了这个吧。: T" S5 s9 R% H. j: `
    0 g- ^  p  Q. Z5 O2 A
    关于怎么使用1 w8 p9 i* ?' Y7 ?8 u. d
    比方说你希望收集以下单词
    5 M, R  U3 ~2 ?" ], W; c! N2 i8 X( HLesson 1:hello world
    0 ~5 z" f2 @* XLesson 2:this is a test8 l# H% e3 ?0 j* x
    Lesson 3: .....
    + |  [& i0 u  l/ C) R. ~3 \5 x' J2 F
    你可以编辑一个txt,一个单词一行,课程名称用#开头,格式如下:
    ( ?# S8 d. q3 v; }& Q#Lesson 13 S0 m0 _) l1 w5 C# Y! p& c, D4 @
    hello
    3 }+ _( c0 w- Z( N/ \world
    . t* z% @: `. y#Lesson 2' ]4 \2 C, v" O6 J5 q
    this
      E, r# [6 h7 S( f% N9 S8 sis7 O, |5 D' i0 g* j7 h$ P' Q
    a
    / K2 K, P( H& H9 U& k# v+ j, Atest
    ' J7 M. o9 c5 ~( e/ E! d#Lesson 3
    $ v$ u& L0 h4 L5 ~* K7 t' X....
    1 _' I0 |7 e$ R* X, i" \# j
    1 X/ X/ Z' c$ ]7 z6 P也可以编辑一个excel表格,一个sheet就是一个课程,sheet名称就是课程名称,单词排列在第一列上. s; ]* q1 ]. O4 E# b4 m
    也可以编辑一个json文件,不再赘述。9 j$ C. t0 }% ]! b1 V2 O: K) R, s
    , _' b! L/ L- [8 A  I" i0 z5 @
    然后在命令行下运行
    ( S+ P, l6 y3 q% s% cMdxConverter 【mdx字典名称】 【输入的文件名】 【输出的文件名(后缀为.html或.pdf)】0 }. b3 C! o8 @# o+ G7 y0 B8 A

    $ E) g6 j* }& n# r2 c* f注意:如果有mdx词典中不存在的单词,程序会显示报警信息,默认动作是收集到invalid_words.txt中。你可以设置运行参数
    ) m5 Q4 S% F& E2 ]1 z( l--invalid 0 立即退出( l7 H- D4 s* @8 H0 f
    --invalid 1 输出警告信息到html/pdf中
    + x, q7 Y( x: i0 w* C% s6 t
      p9 c# m5 g5 b/ K用法
    1. usage: MdxConverter.exe [-h] [--type [{pdf,html}]] [--invalid {0,1,2}]
      0 W: @5 m7 N3 L' M' K8 ~; y: S
    2.                         mdx_name input_name [output_name]* m" B  b1 E' r1 l) ~
    3. positional arguments:
      9 E" v" g) a6 O
    4.   mdx_name0 Q2 C0 B+ p4 W' b- u0 o6 K1 ]
    5.   input_name
      , Y1 F. H; U( K
    6.   output_name
      # m) b( Y9 u( _& |; ~$ `
    7. optional arguments:% {5 P- h5 B3 U2 F- ?4 X+ ~. C" k* x
    8.   -h, --help           show this help message and exit! ^& I9 {4 d* c3 k% x  d5 g; T8 ]
    9.   --type [{pdf,html}]
      : j5 |6 v9 ^, i* h0 c( O9 r% f
    10.   --invalid {0,1,2}    action for meeting invalid words
      2 n+ d& o! i8 g: i
    11.                        0: exit immediately2 y- S1 G% k# W# O
    12.                        1: output warnning message
      5 }: j4 _$ W. X9 e
    13.                        2: collect them to invalid_words.txt (default)                        
    复制代码

    ( g, ]/ U! P' r1 [
    ) D4 C* u2 w2 W
    例如:
    1. MdxConverter 某某词典.mdx input.xlsx output.pdf
    复制代码

    / i) {# H9 H) c0 C0 V
    # A, }3 ]) R! q1 Q" D& m输入' t- L5 H9 V+ |/ G2 }
    txt 示例
    1. #Lesson 1
      ( x' }; r1 c& _" z' t
    2. hello! a$ c& v; e8 z# y" n' M; U
    3. world# R, B  Q/ J  n
    4. : w8 _% s, q; X( T1 z$ q- k  V
    5. #Lesson 2. J1 p, s$ B2 l; `, I4 r) H
    6. python
      ( S& z8 F# F0 U. U* C6 U
    7. is
      . Z: P  G: \6 X$ Z: Q% o
    8. awesome
    复制代码
    - T! ^! d5 u( q
    json 示例5 i" |8 X; F8 D/ [! q
    1. [3 F7 q: t- C$ L
    2.     {
      0 k& ~! [7 V' W9 V  B
    3.         "name": "Lesson 1",
      # T, d3 F9 d2 N- O, ?
    4.         "words": [
      $ {. S& V/ v* p: }. h
    5.             "hello",
      ) H% g  F# `( {9 @* r
    6.             "world"  V$ k; \# _: T$ w+ V! N
    7.         ]
      5 ^( H. w6 g5 H
    8.     },/ {2 x8 N% L( d5 @2 e& T
    9.     {2 }# M7 e* J5 a) A; g' M% D
    10.         "name": "Lesson 2",, T  n! q: i2 u; L" H; r
    11.         "words": [
      & X+ w# e( n! C( j5 v# `
    12.             "python",
      " Y( t+ Z$ P; ~, y% f
    13.             "is",3 {$ O! l+ J% m9 m7 R3 M
    14.             "awesome"
      2 L1 Z6 V( n, ?" `# H
    15.         ]  {- ~  I6 m6 v, |) H
    16.     }# H% [# o1 s! \* H  r: q+ k7 |8 ?
    17. ]
    复制代码
    3 v# b! X# A& Y- v
    excel 示例
    " U% D* K! S! C9 S* S' ?) |8 ]2 U' W6 ?

    , h( \* K) B4 t3 ?输出% ^4 T2 o0 b/ Z
    (图片怎么弄都出不出来,我放弃了)  l& d: S; t# Y* a, O% i
    HTML
      w! c6 j% K0 m4 u- s; c! t% K) N- `0 m+ T4 p1 P
    PDF
    4 j4 T% ~. o0 ?4 W+ A
    " O- _* Y4 N! Q& f0 k% E3 E! D9 p& M
    8 d6 q6 x" S# O
    7 d" s" j  s5 X; T: J* S
    ; u  G8 w4 K+ E+ o) d
    , ~3 R7 N6 t# w# c: H

    本帖子中包含更多资源

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

    x

    评分

    4

    查看全部评分

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

    [LV.1]初来乍到

     楼主| 发表于 2020-2-29 08:11:44 | 显示全部楼层
    johannhuang 发表于 2020-2-29 05:33+ x7 @1 b" _! U
    但你这样一没有就退出 我觉得改词表会改到怀疑人生何苦 不如用Python 讽刺 ...

    4 c* F0 T5 y3 E可能是你选的词典词不够全。
      W" I& f& j) H9 z7 O反正开源的,你觉得怎么样好,可以自己改。
    3 ]: _3 O  \$ l2 R; k这就是一个我给自己家熊孩子写的,让她学新单词时用的的小工具,做好后顺便放出来,现在已经满足我的预期要求了。
  • TA的每日心情
    开心
    2018-8-8 03:13
  • 签到天数: 1 天

    [LV.1]初来乍到

    发表于 2020-3-22 16:12:31 | 显示全部楼层
    本帖最后由 喬治兄 于 2020-3-22 16:32 编辑 + a- r# k6 B1 O2 \$ u
    $ `+ H; v, R& z3 q" Y
    noword2k 兄:' @0 n! }; z5 s
    html 說明圖沒顯示出來.....
    & P, Z% _9 t3 _# P) ?3 f8 U& R1. 起問是否一個 headword 生成一個 html 檔案 or 多個的 html 檔案根據 headwords 多少個就多少個 html
    . U0 R8 e: Y2 I& c/ m& X* }2. 若想生成全部的 headwords 該如何使用.....
    + c: L8 O; Q+ b! E3. filename  可否和 headword 相同來生成
    : g; ~+ j0 u3 F4 s可否再請仁兄指點迷津解惑一下.....
    : `+ ]( X  V/ O  w# A" |Thanks a lot% A" P* H* j; h( g5 l
    ) K9 {, n6 o% j: b- w. e
  • TA的每日心情
    开心
    2020-2-29 08:12
  • 签到天数: 1 天

    [LV.1]初来乍到

     楼主| 发表于 2020-2-28 17:54:45 | 显示全部楼层
    johannhuang 发表于 2020-2-28 15:29$ E3 z  z' Y( F
    热情很棒 不过出错就重新编辑的逻辑有点不好哦 建议加try...catch

    $ D3 u8 s/ @- d6 z. ^. j可以判断返回的结果是不是为空,为空的话输出警告信息什么的。) H6 j' M6 j; Q  T
    但是就怕用户不仔细看输出信息,从而漏了单词,干脆出错强制退出。
    $ l+ m* |5 N$ q8 U9 V; ^) S) A不喜欢用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* R4 F2 {0 F! y7 j
    谢谢!下载了.exe后,怎么用?
    ! R* \' ^7 |+ H' |
    更新了一下帖子,增加了简单说明
  • TA的每日心情
    开心
    2020-2-29 08:12
  • 签到天数: 1 天

    [LV.1]初来乍到

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

    " u$ }% w9 c# E& U; t+ S. M更新了一下帖子,增加了简单说明
  • 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
    / b- i: q* u' F9 v3 ]可以判断返回的结果是不是为空,为空的话输出警告信息什么的。" ^7 i6 ?# }* C+ ~2 I
    但是就怕用户不仔细看输出信息,从而漏了 ...

    ; [) U) i1 B; f! g* @但你这样一没有就退出 我觉得改词表会改到怀疑人生何苦 不如用Python 讽刺
  • TA的每日心情
    开心
    2020-2-29 08:12
  • 签到天数: 1 天

    [LV.1]初来乍到

     楼主| 发表于 2020-2-29 08:45:05 | 显示全部楼层
    johannhuang 发表于 2020-2-29 05:334 `4 u+ X. A: J9 k6 I
    但你这样一没有就退出 我觉得改词表会改到怀疑人生何苦 不如用Python 讽刺 ...

    " k) W2 m' e% K' ?, a. G" s; G想了一下,还是从善如流,反正是举手之劳。
    : d% S$ m+ e7 N$ }6 W! f% T# w" n新版的遇到没查到的单词,会显示警告信息,然后继续。
  • 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
      \+ ~4 H9 _$ [2 c已经试用了昨天的exe版,新版的正在下载。昨天的那个版本基本能用起来,但经常报错,可能是查不到所列的单 ...

    7 ~1 ?+ h- [! [' t% w3 k现在是找不到的单词,在html或pdf中显示 warning 信息。6 q/ l: X/ s' L+ L7 Z. T2 D
    考虑统一放在最后,单独一组invalid words。6 k9 Q- Y6 m6 U% W- T" @% `# J% q
    等有空再搞。
  • 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的每日心情
    慵懒
    半小时前
  • 签到天数: 1722 天

    [LV.Master]伴坛终老

    发表于 2020-3-9 03:20:40 | 显示全部楼层
           谢谢楼主的辛勤劳动与奉献分享,小工具挺实用。' z* V" f  B2 \' i  G5 `

    9 D& G  d0 T, ~4 t4 G2 R

    该用户从未签到

    发表于 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 | 显示全部楼层
    楼主太给力了 赞赞赞' w' r4 ]5 \! G; h' d; O. l# a+ s
    您需要登录后才可以回帖 登录 | 免费注册

    本版积分规则

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

    GMT+8, 2024-4-27 08:21 , Processed in 0.086117 second(s), 14 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2023, Tencent Cloud.

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