用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实现求最大公约数及判断素数的方法
May 26 Python
Python3实现简单可学习的手写体识别(实例讲解)
Oct 21 Python
基于DataFrame筛选数据与loc的用法详解
May 18 Python
详解Python3 基本数据类型
Apr 19 Python
python接口自动化测试之接口数据依赖的实现方法
Apr 26 Python
Python一行代码实现快速排序的方法
Apr 30 Python
python 实现线程之间的通信示例
Feb 14 Python
pytorch实现保证每次运行使用的随机数都相同
Feb 20 Python
python 数据分析实现长宽格式的转换
May 18 Python
matplotlib基础绘图命令之errorbar的使用
Aug 13 Python
Python实现制作销售数据可视化看板详解
Nov 27 Python
Python使用永中文档转换服务
May 06 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
实例(Smarty+FCKeditor新闻系统)
2007/01/02 PHP
PHP 上传文件的方法(类)
2009/07/30 PHP
PHP中的生成XML文件的4种方法分享
2012/10/06 PHP
php过滤XSS攻击的函数
2013/11/12 PHP
php使用gzip压缩传输js和css文件的方法
2015/07/29 PHP
PHP编程快速实现数组去重的方法详解
2017/07/22 PHP
PHP实现15位身份证号转18位的方法分析
2019/10/16 PHP
JS getAttribute和setAttribute(取得和设置属性)的使用介绍
2013/07/10 Javascript
js判断url是否有效的两种方法
2014/03/04 Javascript
jQuery实现提示密码强度的代码
2015/07/15 Javascript
windows下安装nodejs及框架express
2015/08/07 NodeJs
限制只能输入数字的实现代码
2016/05/16 Javascript
JQuery的attr 与 val区别
2016/06/12 Javascript
JS中split()用法(将字符串按指定符号分割成数组)
2016/10/24 Javascript
layui导航栏实现代码
2017/05/19 Javascript
解析Vue2 dist 目录下各个文件的区别
2017/11/22 Javascript
jQuery动态移除与增加onclick属性的方法详解
2018/06/07 jQuery
vue-router结合vuex实现用户权限控制功能
2019/11/14 Javascript
Vue 解决通过this.$refs来获取DOM或者组件报错问题
2020/07/28 Javascript
如何在sae中设置django,让sae的工作环境跟本地python环境一致
2017/11/21 Python
Python 使用PIL numpy 实现拼接图片的示例
2018/05/08 Python
PyQt5 对图片进行缩放的实例
2019/06/18 Python
对python中的os.getpid()和os.fork()函数详解
2019/08/08 Python
Django 拼接两个queryset 或是两个不可以相加的对象实例
2020/03/28 Python
jupyter notebook读取/导出文件/图片实例
2020/04/16 Python
Python读取二进制文件代码方法解析
2020/06/22 Python
HTML5调用手机发短信和打电话功能
2020/04/29 HTML / CSS
英国著名音像制品和图书游戏购物网站:Zavvi
2016/08/04 全球购物
师范毕业生自荐信
2013/10/17 职场文书
物流专业大学应届生求职信
2013/11/03 职场文书
金融事务专业求职信
2014/04/25 职场文书
单身申明具结书
2015/02/26 职场文书
人民币使用说明书
2019/04/17 职场文书
调研报告的主要写法
2019/04/18 职场文书
IDEA2021.2配置docker如何将springboot项目打成镜像一键发布部署
2021/09/25 Java/Android
python模块与C和C++动态库相互调用实现过程示例
2021/11/02 Python