用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爬取w3shcool的JQuery课程并且保存到本地
Apr 06 Python
python装饰器实例大详解
Oct 25 Python
使用Python快速搭建HTTP服务和文件共享服务的实例讲解
Jun 04 Python
Python动态导入模块的方法实例分析
Jun 28 Python
Python对象中__del__方法起作用的条件详解
Nov 01 Python
梅尔倒谱系数(MFCC)实现
Jun 19 Python
Python实现微信中找回好友、群聊用户撤回的消息功能示例
Aug 23 Python
如何利用Python开发一个简单的猜数字游戏
Sep 22 Python
python matplotlib折线图样式实现过程
Nov 04 Python
如何在Python项目中引入日志
May 31 Python
使用pandas生成/读取csv文件的方法实例
Jul 09 Python
5道关于python基础 while循环练习题
Nov 27 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操作MongoDB基础教程(连接、新增、修改、删除、查询)
2014/03/25 PHP
php实现根据url自动生成缩略图的方法
2014/09/23 PHP
PHP创建PowerPoint2007文档的方法
2015/12/10 PHP
Yii编程开发常见调用技巧集锦
2016/07/15 PHP
微信开发之获取JSAPI TICKET
2017/07/07 PHP
ASP.NET jQuery 实例6 (实现CheckBoxList成员全选或全取消)
2012/01/13 Javascript
原生JS实现拖拽图片效果
2020/08/27 Javascript
Bootstrap 源代码分析(未完待续)
2016/08/17 Javascript
JS中input表单隐藏域及其使用方法
2017/02/13 Javascript
微信小程序之GET请求的实例详解
2017/09/29 Javascript
浅谈Vue数据绑定的原理
2018/01/08 Javascript
从零开始最小实现react服务器渲染详解
2018/01/26 Javascript
vue语法自动转typescript(解放双手)
2019/09/18 Javascript
vue中注册自定义的全局js方法
2019/11/15 Javascript
JavaScript实现左右滚动电影画布
2020/02/06 Javascript
Vue+element+cookie记住密码功能的简单实现方法
2020/09/20 Javascript
python调用cmd复制文件代码分享
2013/12/27 Python
python开发之字符串string操作方法实例详解
2015/11/12 Python
8种用Python实现线性回归的方法对比详解
2019/07/10 Python
Python 多线程搜索txt文件的内容,并写入搜到的内容(Lock)方法
2019/08/23 Python
django认证系统实现自定义权限管理的方法
2019/08/28 Python
TensorFlow的环境配置与安装教程详解(win10+GeForce GTX1060+CUDA 9.0+cuDNN7.3+tensorflow-gpu 1.12.0+python3.5.5)
2020/06/22 Python
解决Python 写文件报错TypeError的问题
2020/10/23 Python
多视角3D逼真HTML5水波动画
2016/03/03 HTML / CSS
Sephora丝芙兰泰国官方网站:国际知名化妆品购物
2017/11/15 全球购物
西安交大自主招生自荐信
2014/01/27 职场文书
中秋节礼品促销方案
2014/02/02 职场文书
军训自我鉴定100字
2014/02/13 职场文书
公司授权委托书范本
2014/04/03 职场文书
学校节能宣传周活动总结
2014/07/09 职场文书
群众路线剖析材料怎么写
2014/10/09 职场文书
2014年司法局工作总结
2014/12/11 职场文书
招标保密承诺书
2015/01/20 职场文书
毕业生个人自荐书
2015/03/05 职场文书
2015年敬老月活动总结
2015/03/27 职场文书
django中websocket的具体使用
2022/01/22 Python