用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除法运算小技巧
Apr 05 Python
列举Python中吸引人的一些特性
Apr 09 Python
TensorFlow如何实现反向传播
Feb 06 Python
解决Python pandas plot输出图形中显示中文乱码问题
Dec 12 Python
Python之lambda匿名函数及map和filter的用法
Mar 05 Python
Python创建或生成列表的操作方法
Jun 19 Python
Python中print函数简单使用总结
Aug 05 Python
python 根据网易云歌曲的ID 直接下载歌曲的实例
Aug 24 Python
python实现多进程通信实例分析
Sep 01 Python
Python3内置函数chr和ord实现进制转换
Jun 05 Python
python 中的命名空间,你真的了解吗?
Aug 19 Python
sklearn中的交叉验证的实现(Cross-Validation)
Feb 22 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
dedecms模板标签代码官方参考
2007/03/17 PHP
php date与gmdate的获取日期的区别
2010/02/08 PHP
php利用单例模式实现日志处理类库
2014/02/10 PHP
Laravel如何友好的修改.env配置文件详解
2017/06/07 PHP
PHP实现微信商户支付企业付款到零钱功能
2018/09/30 PHP
javascript 硬盘序列号+其它硬件信息
2008/12/23 Javascript
extjs fckeditor集成代码
2009/05/10 Javascript
JS 图片缩放效果代码
2010/06/09 Javascript
Script标签与访问HTML页面详解
2014/01/10 Javascript
Flash图片上传组件 swfupload使用指南
2015/03/14 Javascript
图片上传之FileAPI与NodeJs
2017/01/24 NodeJs
Angular.js中ng-include用法及多标签页面的实现方式详解
2017/05/07 Javascript
JS运动特效之任意值添加运动的方法分析
2018/01/24 Javascript
JavaScript中的函数申明、函数表达式、箭头函数
2019/12/06 Javascript
详解如何修改 node_modules 里的文件
2020/05/22 Javascript
[00:43]TI7不朽珍藏III——幽鬼不朽展示
2017/07/15 DOTA
在Python的Django框架中创建和使用模版
2015/07/15 Python
举例讲解Python编程中对线程锁的使用
2016/07/12 Python
Python编程生成随机用户名及密码的方法示例
2017/05/05 Python
Python爬虫实现获取动态gif格式搞笑图片的方法示例
2018/12/24 Python
python多进程(加入进程池)操作常见案例
2019/10/21 Python
Python 元组拆包示例(Tuple Unpacking)
2019/12/24 Python
如何使用python的ctypes调用医保中心的dll动态库下载医保中心的账单
2020/05/24 Python
Python collections模块的使用方法
2020/10/09 Python
HTML5 Plus 实现手机APP拍照或相册选择图片上传功能
2016/07/13 HTML / CSS
HTML5新增加的功能详解
2016/09/05 HTML / CSS
介绍一下SOA和SOA的基本特征
2016/02/24 面试题
西北政法大学自主招生自荐信
2014/01/29 职场文书
楼面经理岗位职责范本
2014/02/18 职场文书
购房公证委托书(2014版)
2014/09/12 职场文书
“九一八事变纪念日”国旗下讲话稿
2014/09/14 职场文书
民主生活会主持词
2015/07/01 职场文书
公司费用报销管理制度
2015/08/04 职场文书
工作计划范文之财务管理
2019/08/09 职场文书
Nginx域名转发使用场景代码实例
2021/03/31 Servers
微软发布Windows 11今年最大更新22H2(附 ISO 镜像官方下载)
2022/09/23 数码科技