用Python编写一个基于终端的实现翻译的脚本


Posted in Python onApril 24, 2015

为什么写这个程序,为什么不给这个程序配备gui?原因很简单,因为我是一个命令行控,Linux习惯了不习惯了鼠标,总觉得点着不如敲命令快,各位在看这篇文章就说明和本人有相同的爱好.这个用python写的翻译工具是通过google来实现的,由于google返回的数据不是很规范(或者说我没有找到规律),现在前三项能正常显示(源词,翻译结果,和汉语拼音).下面的词性和其他释义可能不同,见谅,望大神可以指点下小弟和帮小弟完善,这里赶紧不尽.

好了不费话了,下面放代码:

#!/usr/bin/env python
# -*-coding:utf8 -*-
'''
#=============================================================================
#   FileName: translate.py
#     Desc: To translate with zh to en or en2zh
#    Author: cold
#    Email: wh_linux@126.com
#   HomePage: http://www.linuxzen.com
#   Version: 0.0.1
#  LastChange: 2012-04-23 23:04:08
#   History:
#=============================================================================
'''

import urllib
import urllib2
from sys import argv,exit
import re

# 显示帮助信息
def helpinfo():
print '''
Usage: pytran {zh2en|en2zh} content
'''
# 格式化输出
def formatresult(result,srclang):
resu = result.split('[[')
if (srclang=='en2zh' or srclang == 'zh2en'):
firstre = resu[1].replace('[','').replace(']','').split('"')
print '源词:',firstre[3]
print '结果:',firstre[1]
if (srclang=='zh2en'):
piny = firstre[7]
else:
piny = firstre[5]
print '拼音:',piny
if(srclang=='zh2en'):
secresu=resu[2].replace('"','').split('[')
else:
secresu = resu[2].replace('"', '').split('[')
print '词性:',secresu[0].replace(',','')
print '其他释义:'
for i in ''.join(secresu[1].split(']')).split(','):
print i

# 获取命令行参数
try:
srclang = argv[1]
except:
helpinfo()
exit(1)
try:
cont = argv[2]
except:
helpinfo()
exit(2)

# 判断翻译目标语言用来确定传送参数
if(srclang == 'zh2en'):
data=urllib.urlencode({'client':'t', 'text':cont,
'hl':'zh-CN','tl':'en',
'multires':'1','prev':'btn',
'ssel':'0','sc':'1'})
elif(srclang == 'en2zh'):
data=urllib.urlencode({'client':'t', 'text':cont,
'hl':'zh-CN', 'sl':'en','tl':'zh-CN',
'multires':'1', 'prev':'btn',
'ssel':'0','sc':'1'})
else:
helpinfo()

# 打开google翻译内容
url = 'http://translate.google.cn/translate_a/t'
req =urllib2.Request(url,data)
req.add_header("User-Agent", "Mozilla/5.0+(compatible;+Googlebot/2.1;++http://www.google.com/bot.html)")
fd = urllib2.urlopen(req)
result = fd.read()

# 格式化输出
formatresult(result, srclang)
fd.close()

为了更方便的使用我们把这个脚本命名位pytranslate,放到/usr/bin下,并赋予执行权限:

chmod +x /usr/bin/pytranslate

然后我们就可以使用它进行翻译了: 翻译英文到中文:

pytranslate en2zh extent
源词: extent
结果: 程度
拼音: Chéngdù
词性: 名词
其他释义:
程度
范围
幅度
规模
度
地步
广度
长度
面
长短
份儿
界
en
翻译中文到英文
pytranslate zh2en 中国
源词: 中国
结果: China
拼音: Zhōngguó
词性: 名词
其他释义:
China
zh-CN

好吧相信聪明的你肯定发现如何使用了这里就不罗嗦了.

Python 相关文章推荐
TensorFlow实现卷积神经网络CNN
Mar 09 Python
在Python中将函数作为另一个函数的参数传入并调用的方法
Jan 22 Python
OpenCV图像颜色反转算法详解
May 13 Python
使用Python求解带约束的最优化问题详解
Feb 11 Python
python随机模块random使用方法详解
Feb 14 Python
python计算导数并绘图的实例
Feb 29 Python
Django表单提交后实现获取相同name的不同value值
May 14 Python
浅谈matplotlib中FigureCanvasXAgg的用法
Jun 16 Python
PyCharm配置anaconda环境的步骤详解
Jul 31 Python
python 解决selenium 中的 .clear()方法失效问题
Sep 01 Python
详细总结Python常见的安全问题
May 21 Python
PyTorch 如何自动计算梯度
May 23 Python
Python的Bottle框架中获取制定cookie的教程
Apr 24 #Python
利用Python的装饰器解决Bottle框架中用户验证问题
Apr 24 #Python
在Python中使用mongoengine操作MongoDB教程
Apr 24 #Python
python使用arp欺骗伪造网关的方法
Apr 24 #Python
python使用wxPython打开并播放wav文件的方法
Apr 24 #Python
python使用PyGame播放Midi和Mp3文件的方法
Apr 24 #Python
python使用PyGame绘制图像并保存为图片文件的方法
Apr 24 #Python
You might like
10条PHP编程习惯助你找工作
2008/09/29 PHP
PHP变量的定义、可变变量、变量引用、销毁方法
2013/12/20 PHP
浅析php原型模式
2014/11/25 PHP
PHP 验证登陆类分享
2015/03/13 PHP
yii2中LinkPager增加总页数和总记录数的实例
2017/08/28 PHP
JavaScript isPrototypeOf和hasOwnProperty使用区别
2010/03/04 Javascript
iscroll动态加载数据完美解决方法
2017/07/18 Javascript
基于vue2.x的电商图片放大镜插件的使用
2018/01/22 Javascript
浅谈从React渲染流程分析Diff算法
2018/09/08 Javascript
解决layui弹框失效的问题
2019/09/09 Javascript
解决Vue-Router升级导致的Uncaught (in promise)问题
2020/08/07 Javascript
Vue3为什么这么快
2020/09/23 Javascript
openlayers4.6.5实现距离量测和面积量测
2020/09/25 Javascript
python实现忽略大小写对字符串列表排序的方法
2014/09/25 Python
Python自定义线程类简单示例
2018/03/23 Python
使用python opencv对目录下图片进行去重的方法
2019/01/12 Python
flask实现验证码并验证功能
2019/12/05 Python
numpy实现神经网络反向传播算法的步骤
2019/12/24 Python
pandas分组聚合详解
2020/04/10 Python
CSS3 filter(滤镜)实现网页灰色或者黑色模式的示例代码
2021/02/24 HTML / CSS
世界上最大的餐具公司:Oneida
2016/12/17 全球购物
英国最大的在线快递公司之一:ParcelHero
2019/11/04 全球购物
水污染治理工程专业求职信
2014/06/14 职场文书
市政工程技术专业自荐书
2014/07/06 职场文书
小学综合实践活动总结
2014/07/07 职场文书
关于教师节的演讲稿
2014/09/04 职场文书
法定代表人证明书
2014/11/28 职场文书
服务明星事迹材料
2014/12/29 职场文书
颐和园导游词400字
2015/01/30 职场文书
卡特教练观后感
2015/06/08 职场文书
教师节主题班会方案
2015/08/17 职场文书
2016清明节森林防火广播稿
2015/12/17 职场文书
2016学习全国教书育人楷模先进事迹心得体会
2016/01/21 职场文书
创业计划书之服装
2019/10/07 职场文书
在Django中使用MQTT的方法
2021/05/10 Python
vue使用refs获取嵌套组件中的值过程
2022/03/31 Vue.js