掌上百科 - PDAWIKI

 找回密码
 免费注册

QQ登录

只需一步,快速开始

查看: 657|回复: 3

[教程] 得到macOS自带词典释义的简单办法

[复制链接]
  • TA的每日心情
    慵懒
    2021-9-1 08:46
  • 签到天数: 61 天

    [LV.6]常住居民II

    发表于 2021-9-20 16:33:21 | 显示全部楼层 |阅读模式
    本帖最后由 zhangchaont 于 2021-9-20 16:38 编辑 4 L/ N! c+ z$ G

    3 w8 {2 Y4 X9 n& R6 \1 kmacOS的自带词典,可以用Pyglossary转换成其他格式。不过可能不是所有人都有需要得到完整的词典内容,而只是想通过编程查询释义的话,可以用Python的Objective-C的绑定(可以简单理解成是Python和Objective-C沟通的中介)来实现。3 C. }  @$ o: ~

    ; ^8 a5 z7 ]7 O. |( {9 `* v先用pip安装绑定:
    ) {# S: o* W% @; B4 V4 F
    1. pip install pyobjc
    复制代码
    5 s, [" C; a) `! V# ]8 e0 h
    然后要一小段代码来测试一下:
    6 ^6 t8 J8 m, Q+ N5 ?
    1. from CoreServices import DictionaryServices9 ]+ }2 [) U1 M% {$ k& @
    2. " m1 e9 O% r! {6 ?: I% H% b) s
    3. 8 U. q% g5 P! S; h# a
    4. def main():
      ( K0 Y$ v! F4 g1 Y' F, C4 e
    5.     query = input('Lookup:')
      6 h) f% E2 B; z  h
    6.     word_range = (0, len(query))
      % }6 U% J2 j5 r( U3 @7 r( v
    7.     definition = DictionaryServices.DCSCopyTextDefinition(None, query, word_range)) w2 v, i- h$ O& @. N7 x5 r6 B' [& \
    8.     if not definition:: y) E+ a# l  q6 I' _6 |
    9.         errmsg = "'%s' not found in Dictionary." % (query)
      8 w, `/ z" e8 E
    10.         print(errmsg)
      ) R1 a- X% M- L& q
    11.     else:
      8 ~+ B0 i3 q. I! F
    12.         print(definition)( Y& E. {" ?# T+ x! o0 Q" q! ~
    13. 0 L4 r, w# O6 c) C3 c! @/ W5 x

    14. 7 M( H* G' t8 m5 |" C! z
    15. if __name__ == '__main__':; y3 L: K4 D$ [
    16.     main()9 z3 R5 @1 O* V$ E; T  N
    复制代码

    1 T8 `# K8 q6 O2 g, g; W6 m0 [+ `! k8 g7 N6 O% O. o8 J
    就可以看到单词的释义了:)
  • TA的每日心情
    奋斗
    昨天 00:31
  • 签到天数: 633 天

    [LV.9]以坛为家II

    发表于 2021-9-21 11:27:26 | 显示全部楼层
    errmsg = "'%s' not found in Dictionary." % (query)
    5 K! t& G+ z* L1 t- F+ F, _
    4 i1 i5 z; a" Z$ y6 n3 U5 F9 K楼主用的是啥版本的python?
    9 J, m& s9 W! P( n0 W0 x) U' B* Q' E* Y
  • TA的每日心情
    慵懒
    2021-9-1 08:46
  • 签到天数: 61 天

    [LV.6]常住居民II

     楼主| 发表于 2021-9-23 15:38:33 | 显示全部楼层
    Bartleby 发表于 2021-9-21 11:27
    . w" H/ G7 t; Verrmsg = "'%s' not found in Dictionary." % (query)
    + Q2 a3 u# _- C( U/ B' R7 P& W. R1 V/ t. r( C
    楼主用的是啥版本的python?

    ; M" d  K+ x: R! F/ _& w. k( g3 b& {这个一直可以用这个写法的啊,不过现在更好的写法是f'{query} not found in Dictionary'
  • TA的每日心情
    奋斗
    昨天 00:31
  • 签到天数: 633 天

    [LV.9]以坛为家II

    发表于 2021-9-23 16:22:05 | 显示全部楼层
    zhangchaont 发表于 2021-9-23 15:38
    ; x% N# y% V0 N& h, H/ P7 n这个一直可以用这个写法的啊,不过现在更好的写法是f'{query} not found in Dictionary' ...
    ( ?+ v/ d0 J5 }; k& R' [; y
    Python 3.6及其以上,最简洁的写法就是f-string,
    % G  e- L1 x1 W
    ) [* }& a! j' D% ]不过%s, %d这种写法,在特殊情况下,也非常有用。* A; g% x$ k6 _6 [
    / ~- J8 S# S/ c/ ^1 M/ v( o
    您需要登录后才可以回帖 登录 | 免费注册

    本版积分规则

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

    GMT+8, 2024-4-20 00:26 , Processed in 0.089205 second(s), 8 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2023, Tencent Cloud.

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