用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赋值操作方法分享
Mar 23 Python
python计算程序开始到程序结束的运行时间和程序运行的CPU时间
Nov 28 Python
Python 专题四 文件基础知识
Mar 20 Python
Python中进程和线程的区别详解
Oct 29 Python
不管你的Python报什么错,用这个模块就能正常运行
Sep 14 Python
对pandas中时间窗函数rolling的使用详解
Nov 28 Python
Django之模型层多表操作的实现
Jan 08 Python
Python实现九宫格式的朋友圈功能内附“马云”朋友圈
May 07 Python
Python定时任务工具之APScheduler使用方式
Jul 24 Python
Python实现线性插值和三次样条插值的示例代码
Nov 13 Python
python使用bs4爬取boss直聘静态页面
Oct 10 Python
python爬虫scrapy框架的梨视频案例解析
Feb 20 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
编写安全 PHP应用程序的七个习惯深入分析
2013/06/08 PHP
PDO实现学生管理系统
2020/03/21 PHP
window.onbeforeunload方法在IE下无法正常工作的解决办法
2010/01/23 Javascript
jquery自定义类似$.ajax()的方法实现代码
2013/08/13 Javascript
浅析offsetLeft,Left,clientLeft之间的区别
2013/11/30 Javascript
2014年50个程序员最适用的免费JQuery插件
2014/12/15 Javascript
jQuery入门之层次选择器实例简析
2015/12/11 Javascript
微信小程序 HTTPS报错整理常见问题及解决方案
2016/12/14 Javascript
bootstrap suggest搜索建议插件使用详解
2017/03/25 Javascript
Vue render深入开发讲解
2018/04/13 Javascript
vue 自定义指令自动获取文本框焦点的方法
2018/08/25 Javascript
element-ui 的el-button组件中添加自定义颜色和图标的实现方法
2018/10/26 Javascript
JS面向对象编程基础篇(三) 继承操作实例详解
2020/03/03 Javascript
vue+animation实现翻页动画
2020/06/29 Javascript
详解JavaScript中的数据类型,以及检测数据类型的方法
2020/09/17 Javascript
python获取文件后缀名及批量更新目录下文件后缀名的方法
2014/11/11 Python
用Python制作在地图上模拟瘟疫扩散的Gif图
2015/03/31 Python
Python获取当前路径实现代码
2017/05/08 Python
Mac中Python 3环境下安装scrapy的方法教程
2017/10/26 Python
[原创]pip和pygal的安装实例教程
2017/12/07 Python
django API 中接口的互相调用实例
2020/04/01 Python
如何卸载python插件
2020/07/08 Python
python 实现的车牌识别项目
2021/01/25 Python
KARATOV珠宝在线商店:俄罗斯珠宝品牌
2019/03/13 全球购物
罗马尼亚购物网站:Vivantis.ro
2019/07/20 全球购物
澳大利亚二手奢侈品网站:Modsie
2019/09/23 全球购物
电大自我鉴定范文
2013/10/01 职场文书
父亲追悼会答谢词
2014/01/17 职场文书
高中语文课后反思
2014/04/27 职场文书
学校法制宣传月活动总结
2014/07/03 职场文书
国家机关领导干部民主生活会对照检查材料思想汇报
2014/09/17 职场文书
领导干部整治奢华浪费之风思想汇报
2014/10/07 职场文书
优秀共产党员推荐材料
2014/12/18 职场文书
诚信承诺书
2015/01/19 职场文书
横空出世观后感
2015/06/09 职场文书
MongoDB数据库常用的10条操作命令
2021/06/18 MongoDB