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 · 5194 次点击
    这是一个创建于 3263 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

    用 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   ·   实用小工具   ·   2558 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 88ms · UTC 10:18 · PVG 18:18 · LAX 02:18 · JFK 05:18
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.