用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算法之栈(stack)的实现
Aug 18 Python
提升Python程序运行效率的6个方法
Mar 31 Python
使用pandas将numpy中的数组数据保存到csv文件的方法
Jun 14 Python
详解python持久化文件读写
Apr 06 Python
Python Tkinter模块 GUI 可视化实例
Nov 20 Python
python之pymysql模块简单应用示例代码
Dec 16 Python
Python模块的定义,模块的导入,__name__用法实例分析
Jan 07 Python
Python模块_PyLibTiff读取tif文件的实例
Jan 13 Python
解决Pycharm 导入其他文件夹源码的2种方法
Feb 12 Python
Python post请求实现代码实例
Feb 28 Python
python继承threading.Thread实现有返回值的子类实例
May 02 Python
基于python爬取梨视频实现过程解析
Nov 09 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
古巴咖啡 Cubita琥爵咖啡 独特的加勒比海风味咖啡
2021/03/06 新手入门
php下用GD生成生成缩略图的两个选择和区别
2007/04/17 PHP
PHP 获取MySQL数据库里所有表的实现代码
2011/07/13 PHP
PHP新手NOTICE错误常见解决方法
2011/12/07 PHP
浅析PHP程序防止ddos,dns,集群服务器攻击的解决办法
2013/06/18 PHP
yii实现图片上传及缩略图生成的方法
2014/12/04 PHP
php实现俄罗斯乘法实例
2015/03/07 PHP
php递归函数怎么用才有效
2018/02/24 PHP
URI、URL和URN之间的区别与联系
2006/12/20 Javascript
JS执行删除前的判断代码
2014/02/18 Javascript
js获取url中的参数且参数为中文时通过js解码
2014/03/19 Javascript
Javascript中浮点数相乘的一个解决方法
2014/06/03 Javascript
javascript常用函数归纳整理
2014/10/31 Javascript
js表头排序实现方法
2015/01/16 Javascript
javascript常用功能汇总
2015/07/05 Javascript
JS获取下拉框显示值和判断单选按钮的方法
2015/07/09 Javascript
详解Node.Js如何处理post数据
2016/09/19 Javascript
javascript匀速动画和缓冲动画详解
2016/10/20 Javascript
js复制内容到剪贴板代码,js复制代码的简单实例
2016/10/27 Javascript
Chart.js 轻量级HTML5图表绘制工具库(知识整理)
2018/05/22 Javascript
JS实现数组的增删改查操作示例
2018/08/29 Javascript
vue引入axios同源跨域问题
2018/09/27 Javascript
vue.js实现的全选与全不选功能示例【基于elementui】
2018/12/03 Javascript
vue基础之使用get、post、jsonp实现交互功能示例
2019/03/12 Javascript
原生js实现获取form表单数据代码实例
2019/03/27 Javascript
JavaScript this使用方法图解
2020/02/04 Javascript
浅谈vue单页面中有多个echarts图表时的公用代码写法
2020/07/19 Javascript
Python实现的远程文件自动打包并下载功能示例
2019/07/12 Python
Dillard’s百货官网:Dillards.com
2018/05/26 全球购物
佳能法国商店:Canon法国
2019/02/14 全球购物
配置管理计划的主要内容有哪些
2014/06/20 面试题
python+selenium小米商城红米K40手机自动抢购的示例代码
2021/03/24 Python
活动邀请函范文
2014/01/19 职场文书
薪资证明范本
2015/06/19 职场文书
保险公司岗前培训工作总结
2015/10/24 职场文书
Python超详细分步解析随机漫步
2022/03/17 Python