新人写的轮子求指点 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
hzwer
V2EX    Python

新人写的轮子求指点

  •  
  •   hzwer
    hzwer 2015-12-26 14:44:53 +08:00 5665 次点击
    这是一个创建于 3628 天前的主题,其中的信息可能已经有所发展或是发生改变。

    想在终端下实现查英文单词和词组

    用 python3 写了个

    https://github.com/hzwer/termdic

    求指教 QAQ

    ps :第一次在 V2EX 发帖,高中狗,有什么做错的地方求轻喷

    28 条回复    2016-01-05 11:07:30 +08:00
    ahxxm
        1
    ahxxm  
       2015-12-26 14:52:02 +08:00   1
    依赖里没写 lxml ,我新建的 python3 virtualenv 直接 pip install 之用起来会报错……其实直接用正则就可以搞定?

    可以尝试兼容 python2 ,加点测试,多点词典后端(英英,离线文件等?)。。

    pypi 上的下载都是镜像站带来的,不要太慌
    hzwer
        2
    hzwer  
    OP
       2015-12-26 14:57:51 +08:00
    @ahxxm 嗯嗯,我正在尝试兼容。。
    好像是用 BeatifulSoup 的时候提示要加上这个 lxml ,其实并没有很理解它是什么,看来需要学习一个
    您是说换成用正则写会更好?
    唔,显然我不会相信有人会无聊地去下载啦。。。
    hzwer
        3
    hzwer  
    OP
       2015-12-26 14:59:07 +08:00
    @ahxxm 噗。。。 beautiful 都拼错了。。。
    xufang
        4
    xufang  
       2015-12-26 15:00:55 +08:00 via Android   1
    中学生写成这样挺好的。

    建议你研究一下如何在终端输出彩色文字,这样才比较实用。
    ahxxm
        5
    ahxxm  
       2015-12-26 15:01:11 +08:00
    @hzwer 它是个 xml 解析库, bs 可以用它来解析网页,可以改成"html.parser"或者其他的试试,不保证能用。。 http://www.crummy.com/software/BeautifulSoup/bs4/doc/#installing-a-parser
    Allianzcortex
        6
    Allianzcortex  
       2015-12-26 15:25:05 +08:00
    @hzwer 好吧,你还是要相信有人要无聊地试一下的,毕竟教学楼都被封了^

    高中学 Python? 目测是 OIer
    hzwer
        7
    hzwer  
    OP
       2015-12-26 15:59:53 +08:00
    @Allianzcortex 恩。。。退役 OIer
    求大家多多指教
    spencerqiu
        8
    spencerqiu  
       2015-12-26 17:02:08 +08:00 via Android
    黄学长黄学长黄学长
    873681136
        9
    873681136  
       2015-12-26 17:43:41 +08:00
    又见黄学长,我是多年前的 METO , 233
    bdbai
        10
    bdbai  
       2015-12-26 17:44:00 +08:00 via iPhone
    高中正是折腾的时候。加油。
    话说你高几?
    spencerqiu
        11
    spencerqiu  
       2015-12-26 17:51:45 +08:00
    @bdbai
    楼主是保送爷菊苣 ...
    shidenggui
        12
    shidenggui  
       2015-12-26 18:16:01 +08:00   1
    不久前我也写过,正好也是用的 youdao 的接口
    https://github.com/shidenggui/Command-Line-Dict-For-English
    hzwer
        13
    hzwer  
    OP
       2015-12-26 18:25:24 +08:00
    @spencerqiu 并没有保送。。。 QAQ
    XiaoXiaoNiWa
        14
    XiaoXiaoNiWa  
       2015-12-26 18:31:30 +08:00
    膜拜 hzwer 神
    orzorz
    ahxxm
        15
    ahxxm  
       2015-12-26 19:37:50 +08:00
    @hzwer 啊看漏两句,严格说来我也算是个人的。。用正则比较轻便吧,感觉每次装 lxml 全球气温都要上升一点
    unique
        16
    unique  
       2015-12-26 19:47:26 +08:00
    楼主算法好像很 6
    caizixian
        17
    caizixian  
       2015-12-26 21:01:29 +08:00 via Android
    Orz 黄学长
    caizixian
        18
    caizixian  
       2015-12-26 21:07:58 +08:00 via Android
    异常捕获太泛了 容易留隐患
    caizixian
        19
    caizixian  
       2015-12-26 21:09:53 +08:00 via Android
    获取命令行参数的地方也有可能抛异常。
    hzwer
        20
    hzwer  
    OP
       2015-12-26 21:25:03 +08:00
    @caizixian 我修改了,你顺便帮我看看 python2.x 能不能使?
    命令行参数怎么获取比较科学?
    hiluluke
        21
    hiluluke  
       2015-12-26 21:48:27 +08:00
    一样的轮子啊。。。我这个比较简洁。。。 https://github.com/wszgxa/tra 用 node 写的。
    hzwer
        22
    hzwer  
    OP
       2015-12-26 21:54:21 +08:00
    @unique 并不。。。
    messyidea
        23
    messyidea  
       2015-12-26 22:21:21 +08:00
    @ahxxm 比喻好形象啊,那个 lxml 在 256mb 内存的机器上根本编译不了。我每次都是直接 apt-get 的
    caizixian
        24
    caizixian  
       2015-12-27 08:52:11 +08:00 via Android
    @hzwer 我最近只有手机用。
    命令行参数处理可以用 docopt 或者 argparse
    ahxxm
        25
    ahxxm  
       2015-12-27 11:30:46 +08:00
    @messyidea 开缓存试试。。
    nekoprpr
        26
    nekoprpr  
       2015-12-29 10:38:41 +08:00
    一个 bug ,如果查询单词英音或美音音标有超过一种读法会报错,类似 year , the ,
    File "C:/Users/ryy/Desktop/termdic-master/termdic/termdic.py", line 24, in look_up
    print(cl(u'英音{0} 美音{1}'.format(ps[0], ps[1]), 'cyan'))
    UnicodeEncodeError: 'gbk' codec can't encode character '\xf0' in position 27: illegal multibyte sequence
    建议解决。
    hzwer
        27
    hzwer  
    OP
       2015-12-29 21:26:37 +08:00
    @nekoprpr 在 windows 系统下好像是无法使用的,运行都会报编码错误的吧?
    0.1.0 版本 linux 和 mac os 好像不会出现这个问题
    Allianzcortex
        28
    Allianzcortex  
       2016-01-05 11:07:30 +08:00
    @hzwer 用 argparse, argv[1:]太简单了,用 getopt ,算了,不说了,都是泪
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     970 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 25ms UTC 22:45 PVG 06:45 LAX 14:45 JFK 17:45
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86