用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 subprocess模块学习总结
Mar 13 Python
Python多线程和队列操作实例
Jun 21 Python
Python简单实现TCP包发送十六进制数据的方法
Apr 16 Python
python+requests+unittest API接口测试实例(详解)
Jun 10 Python
Python cookbook(数据结构与算法)从序列中移除重复项且保持元素间顺序不变的方法
Mar 13 Python
python3+PyQt5+Qt Designer实现堆叠窗口部件
Apr 20 Python
Python打开文件,将list、numpy数组内容写入txt文件中的方法
Oct 26 Python
Python爬取商家联系电话以及各种数据的方法
Nov 10 Python
利用Django提供的ModelForm增删改数据的方法
Jan 06 Python
Python3按一定数据位数格式处理bin文件的方法
Jan 24 Python
通过cmd进入python的实例操作
Jun 26 Python
Python 的 __str__ 和 __repr__ 方法对比
Sep 02 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 empty() 检查一个变量是否为空
2011/11/10 PHP
php中利用str_pad函数生成数字递增形式的产品编号
2013/09/30 PHP
Windows下安装PHP单元测试环境PHPUnit图文教程
2014/10/24 PHP
PHP版微信第三方实现一键登录及获取用户信息的方法
2016/10/14 PHP
php实现微信企业号支付个人的方法详解
2017/07/26 PHP
基于php数组中的索引数组和关联数组详解
2018/03/12 PHP
Docker 安装 PHP并与Nginx的部署实例讲解
2021/02/27 PHP
判断控件是否已加载完成的代码
2010/02/24 Javascript
5种处理js跨域问题方法汇总
2014/12/04 Javascript
使用pcs api往免费的百度网盘上传下载文件的方法
2016/03/17 Javascript
jquery 无限极下拉菜单的简单实例(精简浓缩版)
2016/05/31 Javascript
jQuery使用animate实现ul列表项相互飘动效果示例
2016/09/16 Javascript
使用base64对图片的二进制进行编码并用ajax进行显示
2017/01/03 Javascript
JS实现用特殊符号替换字符串的中间部分区域的实例代码
2018/07/24 Javascript
vue移动端项目缓存问题实践记录
2018/10/29 Javascript
Javascript实现秒表倒计时功能
2018/11/17 Javascript
在mpvue框架中使用Vant WeappUI组件库的注意事项【推进】
2019/06/09 Javascript
node创建Vue项目步骤详解
2020/03/06 Javascript
react使用CSS实现react动画功能示例
2020/05/18 Javascript
Python环境下安装使用异步任务队列包Celery的基础教程
2016/05/07 Python
Django1.7+python 2.78+pycharm配置mysql数据库
2016/10/09 Python
Python tornado队列示例-一个并发web爬虫代码分享
2018/01/09 Python
tensorflow实现KNN识别MNIST
2018/03/12 Python
使用TensorFlow实现SVM
2018/09/06 Python
Django渲染Markdown文章目录的方法示例
2019/01/02 Python
解决pytorch DataLoader num_workers出现的问题
2020/01/14 Python
python列表删除和多重循环退出原理详解
2020/03/26 Python
html5使用canvas画三角形
2014/12/15 HTML / CSS
美国隐形眼镜网:Major Lens
2018/02/09 全球购物
英国高街奥特莱斯:Highstreet Outlet
2019/11/21 全球购物
电子商务专业学生的自我鉴定
2013/11/28 职场文书
民族学专业求职信
2014/07/28 职场文书
买卖合同协议书范本
2014/10/18 职场文书
一个都不能少观后感
2015/06/04 职场文书
禁毒主题班会教案
2015/08/14 职场文书
Go 内联优化让程序员爱不释手
2022/06/21 Golang