掌上百科 - PDAWIKI

 找回密码
 免费注册

QQ登录

只需一步,快速开始

查看: 5515|回复: 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 t$ b( q4 e& n; V' g1 T/ Z
    " x' c- m) ~+ _
    " d" S: a5 s) V1 aexe下载地址:
      n- T$ x0 M* {) r' l. K1 x5 o: p; K2 I" J

    8 A0 W- g) a( o6 ^一个用来从 mdx 字典中抓取所需的单词,并生成 html 或 pdf 文件的小工具。
    ( e6 j/ h0 [. S  ~1 h' ^学新单词的时候,一次生成所需的单词解释、例句。+ [+ u, u% n  i/ ?  v
    输入支持xls, xlsx, json, txt,输出支持html和pdf。
    $ M# _) @7 n/ H% N6 m- Q这个工具没有GUI界面,我也没兴趣做一个GUI界面,不会用命令行的同学就忘了这个吧。
    : M7 Q# E5 t% I4 ^0 c  a) W* s, A, o4 l) R! }( K! H3 R
    关于怎么使用; w# [, }, p+ g5 o  ^
    比方说你希望收集以下单词
    : H' e/ L$ k& |8 s, {Lesson 1:hello world
      E7 i# J: ]& |& N% [/ oLesson 2:this is a test8 J3 K( z$ }4 K0 Z1 ?) n8 i
    Lesson 3: .....& M1 Y" ]: H1 h: y
    ; y: b1 G) [- l& i5 b) R% `
    你可以编辑一个txt,一个单词一行,课程名称用#开头,格式如下:. m: o* b, ^, o  h! j" ^# h. ^
    #Lesson 1
    + l' V, T9 B6 e0 M8 q1 Ihello
    4 f/ _  R3 G  z% y0 Iworld
    # F8 d/ n" m0 p1 q" |#Lesson 2
    % D) p$ \# L. |" l4 B6 Kthis. Z( O  v) _- A, S
    is  s- Y0 \7 n( ~" A1 G5 r% f
    a
    - V4 l7 B6 V, _$ \  X$ p6 @test
    % w  x, O; I5 x8 o5 J. h#Lesson 3
    ! G) D2 Q. q/ T0 k....
    3 U; l0 {2 e" X# s+ ^8 L/ q  j" ~. c* W8 p& H
    也可以编辑一个excel表格,一个sheet就是一个课程,sheet名称就是课程名称,单词排列在第一列上
    7 V  @+ b4 s5 Z) G; \也可以编辑一个json文件,不再赘述。' g/ t! ~, V5 ^9 b- C! j

    0 L6 Z; h5 {+ z" F4 L0 a5 n( d然后在命令行下运行! V' d" q$ ]( o7 n
    MdxConverter 【mdx字典名称】 【输入的文件名】 【输出的文件名(后缀为.html或.pdf)】- w/ y' D- O) U; Q# z6 }
      j* l* g( m0 Z; X3 o9 b  u
    注意:如果有mdx词典中不存在的单词,程序会显示报警信息,默认动作是收集到invalid_words.txt中。你可以设置运行参数6 o7 ^! J1 B1 n! g( m
    --invalid 0 立即退出
    4 R8 J- w; R' l; \--invalid 1 输出警告信息到html/pdf中5 i% ?! ?7 g* {' }" D
    % Y8 M1 p8 Q' X
    用法
    1. usage: MdxConverter.exe [-h] [--type [{pdf,html}]] [--invalid {0,1,2}]
      + M: w% {  A$ m) W( ?3 r/ M% ^
    2.                         mdx_name input_name [output_name]
      % B, l! ^* L0 V2 H4 b7 O
    3. positional arguments:% w$ r7 `9 S$ {( n# _8 @
    4.   mdx_name
      ! A: T% b+ G3 R3 I) j: @  ~
    5.   input_name" |  w$ q! K8 K) A8 o; x  ]! z
    6.   output_name1 U; {& ]! ]3 ]+ l3 f$ C' b# T
    7. optional arguments:
      " [" k1 T8 v3 A/ C! G- l/ ^
    8.   -h, --help           show this help message and exit* n, q- h5 _& t  ?7 {5 O! }
    9.   --type [{pdf,html}]  |& N4 o* Q1 v/ h+ Q
    10.   --invalid {0,1,2}    action for meeting invalid words0 B8 q$ g% D/ x( V% t; x
    11.                        0: exit immediately5 x+ C* @$ c* I% o3 `4 E
    12.                        1: output warnning message5 k) I) C/ h& F4 d  {! r# n# n
    13.                        2: collect them to invalid_words.txt (default)                        
    复制代码

    . g; K% {5 k( x" M7 a, q/ y$ h. p  V* Y4 f) H7 b. ~0 q4 ~
    例如:
    1. MdxConverter 某某词典.mdx input.xlsx output.pdf
    复制代码
    $ Y+ ?- o( x1 w" v8 `% o. l! `1 a4 F7 i

    $ L6 V0 S+ Y2 z+ n输入
    ! N  y, a9 u0 D  Ntxt 示例
    1. #Lesson 1* h. T" z) M) j/ t
    2. hello
      * B# Q6 k5 C! ?6 P
    3. world- i* _3 w; I/ G- s. J. S
    4. 5 _( ?1 [- i. r/ [
    5. #Lesson 2
      0 w$ l( i2 o# Z8 D0 J
    6. python9 R' M2 U, ?- `5 @, Y
    7. is
      , r$ `) Q+ T; b! _
    8. awesome
    复制代码
    # E4 L1 @. d: r$ q- a  U$ L, ^
    json 示例
    6 Z  o0 {$ a/ T' L$ R8 N
    1. [/ y0 p, i4 Y3 L; h
    2.     {, p; ?$ }' |/ r
    3.         "name": "Lesson 1",, c9 ], T" g5 G2 y0 ^  }
    4.         "words": [, E* B6 V+ A3 r- I5 M: o" q
    5.             "hello",
      8 v' O* Z" _) W( g& h
    6.             "world"
      3 }  D3 d4 z3 C$ G" s
    7.         ]
      5 m& P  t5 M" c$ z( z
    8.     },
      8 C& I, o6 x/ D  t
    9.     {
      - [, t3 B% ?% L1 b1 ]/ Q7 Z
    10.         "name": "Lesson 2"," b! e( I! f# V% g; [( P/ Y
    11.         "words": [" F9 z, k- x2 p6 X, l* f# r
    12.             "python",
      4 a) h) l# i) R9 z
    13.             "is",
      * I% m# s- i+ f, `6 L- }- ^  n
    14.             "awesome"  I* ~5 ~! n9 c- [! X$ P
    15.         ]4 V; g) `. i& n- A( L' a
    16.     }
      ' C2 X; Y" M  W0 ]3 z5 C' p
    17. ]
    复制代码

    6 Z+ y! P( Z  G/ i: Bexcel 示例6 e' J) ?5 d# T2 a) v1 \

    6 L+ ]# k( h9 X' |* p5 ~" ^$ r- l" ]& u
    输出/ C* O3 L5 A3 g8 c3 G* p" G
    (图片怎么弄都出不出来,我放弃了)
    1 i% b: v% X0 h9 Z) GHTML+ p- s& E! V' Z$ w. j# L; I  U

      b# f& H' m, _, H7 g( E' ZPDF
    ) a' |: Q. r% o! q' @& g; z! @( n3 w5 `7 `" ]4 C

    ! I7 Z7 o0 k% o" R4 e
    3 u8 }$ M* L/ ?/ T' S2 A/ {. h3 D
    5 u% t% u7 \7 B  Z. c2 m' `! y

    本帖子中包含更多资源

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

    x

    评分

    4

    查看全部评分

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

    [LV.1]初来乍到

     楼主| 发表于 2020-2-29 08:11:44 | 显示全部楼层
    johannhuang 发表于 2020-2-29 05:33, Q9 b+ q! q2 V; l( j# \4 u! q
    但你这样一没有就退出 我觉得改词表会改到怀疑人生何苦 不如用Python 讽刺 ...
    ) }( a3 i% s" K0 ]. d/ y. S
    可能是你选的词典词不够全。
    5 \* F* o# M. \, u# C. _5 \反正开源的,你觉得怎么样好,可以自己改。
    ( T; ]/ _  p4 e) ~) w1 \; l这就是一个我给自己家熊孩子写的,让她学新单词时用的的小工具,做好后顺便放出来,现在已经满足我的预期要求了。
  • TA的每日心情
    开心
    2018-8-8 03:13
  • 签到天数: 1 天

    [LV.1]初来乍到

    发表于 2020-3-22 16:12:31 | 显示全部楼层
    本帖最后由 喬治兄 于 2020-3-22 16:32 编辑
    1 ?& l0 O' V5 G3 P! @1 K+ \3 C/ M+ L* k- g8 ~1 R
    noword2k 兄:: Q" Z3 ~0 o  Y
    html 說明圖沒顯示出來...... n" Y$ R, I3 f/ o% M6 A) ]
    1. 起問是否一個 headword 生成一個 html 檔案 or 多個的 html 檔案根據 headwords 多少個就多少個 html5 T' M# R# |8 c4 o  h. @6 i
    2. 若想生成全部的 headwords 該如何使用.....
    * r: B- `. `6 O  Z+ h* e3. filename  可否和 headword 相同來生成7 ^# e$ B; }+ Z
    可否再請仁兄指點迷津解惑一下.....' I/ w" c- K" Z5 p1 z
    Thanks a lot
    ( I! J. x! N& @5 v7 e7 G
    $ c  F' p4 p' u$ O, M
  • TA的每日心情
    开心
    2020-2-29 08:12
  • 签到天数: 1 天

    [LV.1]初来乍到

     楼主| 发表于 2020-2-28 17:54:45 | 显示全部楼层
    johannhuang 发表于 2020-2-28 15:29" r/ L1 w4 A8 f, D- O4 y
    热情很棒 不过出错就重新编辑的逻辑有点不好哦 建议加try...catch
    $ P: r9 q" |6 \" {0 {* S
    可以判断返回的结果是不是为空,为空的话输出警告信息什么的。
    8 d" K3 N9 O; X3 c但是就怕用户不仔细看输出信息,从而漏了单词,干脆出错强制退出。$ T( A. `3 ~; I
    不喜欢用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
    6 v( |4 X+ F+ U; Q3 @. M0 w谢谢!下载了.exe后,怎么用?

    % Y! P7 h1 |/ x; u  t更新了一下帖子,增加了简单说明
  • TA的每日心情
    开心
    2020-2-29 08:12
  • 签到天数: 1 天

    [LV.1]初来乍到

     楼主| 发表于 2020-2-28 11:48:50 | 显示全部楼层
    neilzhu 发表于 2020-2-28 11:11
    2 Y6 _; _8 I: ~" ~0 ~这个程序挺实用的,可惜不会python。正在下载exe,不知道有没有比较好的说明书之类的,希望能会用 ...
    9 `2 K7 M. F3 z7 y, D1 A- }- L
    更新了一下帖子,增加了简单说明
  • 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
    " v% }: o" p4 ^; f. x2 h可以判断返回的结果是不是为空,为空的话输出警告信息什么的。
    5 X5 s. P. r4 H8 \  ]但是就怕用户不仔细看输出信息,从而漏了 ...

    0 ^$ V- K( A; t' D但你这样一没有就退出 我觉得改词表会改到怀疑人生何苦 不如用Python 讽刺
  • TA的每日心情
    开心
    2020-2-29 08:12
  • 签到天数: 1 天

    [LV.1]初来乍到

     楼主| 发表于 2020-2-29 08:45:05 | 显示全部楼层
    johannhuang 发表于 2020-2-29 05:33% B$ ?: G: V% T0 J% Y6 R/ P2 K
    但你这样一没有就退出 我觉得改词表会改到怀疑人生何苦 不如用Python 讽刺 ...
    7 H" }! S! A/ t" l6 E
    想了一下,还是从善如流,反正是举手之劳。
    : Q/ s) Y' {# [$ Z9 `新版的遇到没查到的单词,会显示警告信息,然后继续。
  • 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
    . S0 {1 y) ^; w  l# b已经试用了昨天的exe版,新版的正在下载。昨天的那个版本基本能用起来,但经常报错,可能是查不到所列的单 ...

    " P  G% O# p" v( h现在是找不到的单词,在html或pdf中显示 warning 信息。% b, Y  c$ E, [/ E( `) z+ l; E
    考虑统一放在最后,单独一组invalid words。
    5 R+ k+ Y2 |; w$ G9 @7 K4 w! E* J; ]+ x$ y等有空再搞。
  • 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的每日心情
    慵懒
    6 小时前
  • 签到天数: 1718 天

    [LV.Master]伴坛终老

    发表于 2020-3-9 03:20:40 | 显示全部楼层
           谢谢楼主的辛勤劳动与奉献分享,小工具挺实用。  z, L9 t8 h: S3 m0 k3 Q

    0 s# q: e6 ]0 U2 G6 O3 H( _- x

    该用户从未签到

    发表于 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的每日心情
    开心
    5 天前
  • 签到天数: 929 天

    [LV.10]以坛为家III

    发表于 2020-3-22 16:34:57 | 显示全部楼层
    楼主太给力了 赞赞赞
    4 ?. x0 R! V/ k4 k8 z
    您需要登录后才可以回帖 登录 | 免费注册

    本版积分规则

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

    GMT+8, 2024-4-23 13:29 , Processed in 0.069358 second(s), 14 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2023, Tencent Cloud.

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