命令行翻译脚本

为了解决阅读英文文档时遇到的翻译难题,作者创建了一个名为trans.py的命令行脚本,该脚本能够调用Google翻译进行即时翻译。脚本可放入~/scripts目录并添加到PATH环境变量中,以便于快捷使用。用户只需输入单词或短语,脚本即可自动识别并提供中英文翻译。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

    看英文文档遇到不认识的单词很纠结,猜又猜不出,用网页翻译不ok,所以写了一个脚本调用google翻译。

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import json
import re
import sys
import urllib2
import types

res = 'http://translate.google.cn/translate_a/t?client=t&text=%s&hl=zh-CN&sl=%s&tl=%s'
agent = 'Mozilla / 5.0 (X11; U; Linux i686; en - US) AppleWebKit / 534.7 (KHTML, like Gecko) Chrome / 7.0.517.44 Safari / 534.7'

def get_data(text, sl='en', tl='zh-CN'):
    req = urllib2.Request(res % (urllib2.quote(text), sl, tl))
    req.add_header('user-agent', agent)
    content = urllib2.urlopen(req).read()
    return json.loads(to_standard_json(content))

def show(data):
    #step1
    print u'翻译:\n  %s' % (data[4][0][0])
    #step2
    if types.ListType == type(data[1]):
        print u'\n字典:'
        for word in data[1]:
            print word[0]
            if len(word) > 1:
                for i, w in enumerate(word[1]):
                    print '  %s.%s' % (i + 1, w) 

def to_standard_json(json):
    p = re.compile(r',([,\]])')
    while(p.search(json)):
        json = p.sub(lambda m:',null%s' % (m.group(1)), json)
    return json

def contains_cn(text):
    for c in text:
        if ord(c) > 127:
            return True
    return False

if __name__ == '__main__':
    if not len(sys.argv) == 2 or not sys.argv[1].strip():
        print 'Useage:translate.py word'
        sys.exit()
    word = sys.argv[1].strip()
    if contains_cn(word):
        show(get_data(word, 'zh-CN', 'en'))
    else:
        show(get_data(word, 'en', 'zh-CN'))

放在~/scripts目录下,并加入PATH

export PATH=~/scripts:$PATH

自动识别中英文。

例子:



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值