用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 相关文章推荐
python条件和循环的使用方法
Nov 01 Python
17个Python小技巧分享
Jan 23 Python
python使用wmi模块获取windows下硬盘信息的方法
May 15 Python
对变量赋值的理解--Pyton中让两个值互换的实现方法
Nov 29 Python
Python使用smtp和pop简单收发邮件完整实例
Jan 09 Python
flask-socketio实现WebSocket的方法
Jul 31 Python
wtfPython—Python中一组有趣微妙的代码【收藏】
Aug 31 Python
python调用c++ ctype list传数组或者返回数组的方法
Feb 13 Python
Python3.6.x中内置函数总结及讲解
Feb 22 Python
Python3实现二叉树的最大深度
Sep 30 Python
Python爬取股票信息,并可视化数据的示例
Sep 26 Python
Python离线安装openpyxl模块的步骤
Mar 30 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
关于Yii2框架跑脚本时内存泄漏问题的分析与解决
2019/12/01 PHP
innerHTML,outerHTML,innerTEXT三者之间的区别
2007/01/28 Javascript
Ajax一统天下之Dojo整合篇
2007/03/24 Javascript
基于jQuery的动态增删改查表格信息,可左键/右键提示(原创自Zjmainstay)
2012/07/31 Javascript
原始的js代码和jquery对比体会
2013/09/10 Javascript
JQGrid的用法解析(列编辑,添加行,删除行)
2013/11/08 Javascript
扩展IE中一些不兼容的方法如contains、startWith等等
2014/01/09 Javascript
JavaScript实现班级随机点名小应用需求的具体分析
2014/05/12 Javascript
JavaScript原生xmlHttp与jquery的ajax方法json数据格式实例
2015/12/04 Javascript
js点击按钮实现带遮罩层的弹出视频效果
2015/12/19 Javascript
jQuery 常见小例汇总
2016/12/14 Javascript
Angular.JS实现无限级的联动菜单(使用demo)
2017/02/08 Javascript
vue 指令之气泡提示效果的实现代码
2018/10/18 Javascript
js实现简单掷骰子小游戏
2019/10/24 Javascript
vue-cli3项目升级到vue-cli4 的方法总结
2020/03/19 Javascript
Javascript执行流程细节原理解析
2020/05/14 Javascript
js实现带积分弹球小游戏
2020/07/21 Javascript
详解JavaScript自定义函数
2020/07/29 Javascript
Vue+Element UI 树形控件整合下拉功能菜单(tree + dropdown +input)
2020/08/28 Javascript
python 自动提交和抓取网页
2009/07/13 Python
python 简易计算器程序,代码就几行
2009/08/29 Python
python实现的简单窗口倒计时界面实例
2015/05/05 Python
python+Django+apache的配置方法详解
2016/06/01 Python
对Python 窗体(tkinter)文本编辑器(Text)详解
2018/10/11 Python
Python3 使用cookiejar管理cookie的方法
2018/12/28 Python
python中eval与int的区别浅析
2019/08/11 Python
python输出第n个默尼森数的实现示例
2020/03/08 Python
如何打包Python Web项目实现免安装一键启动的方法
2020/05/21 Python
Keras loss函数剖析
2020/07/06 Python
CSS3中利用animation属性创建雪花飘落特效
2014/05/14 HTML / CSS
Lancome兰蔻官方旗舰店:来自法国的世界知名美妆品牌
2018/06/14 全球购物
大学生物业管理求职信
2013/10/24 职场文书
医院总经理职责
2013/12/26 职场文书
党建工作整改措施
2014/10/28 职场文书
承诺书模板大全
2015/05/04 职场文书
python通过opencv调用摄像头操作实例分析
2021/06/07 Python