用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复制文件代码实现
Dec 23 Python
把MySQL表结构映射为Python中的对象的教程
Apr 07 Python
python处理二进制数据的方法
Jun 03 Python
python编码总结(编码类型、格式、转码)
Jul 01 Python
python 弹窗提示警告框MessageBox的实例
Jun 18 Python
Python Multiprocessing多进程 使用tqdm显示进度条的实现
Aug 13 Python
python3 selenium自动化 下拉框定位的例子
Aug 23 Python
Python在OpenCV里实现极坐标变换功能
Sep 02 Python
利用python3 的pygame模块实现塔防游戏
Dec 30 Python
pycharm最新激活码有效期至2100年(亲测可用)
Feb 05 Python
Python3 多线程(连接池)操作MySQL插入数据
Jun 09 Python
Pandas-DataFrame知识点汇总
Mar 16 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
PHP4 与 MySQL 数据库操作函数详解
2006/10/09 PHP
利用static实现表格的颜色隔行显示
2006/10/09 PHP
php中一个完整表单处理实现代码
2011/11/10 PHP
php中通过curl smtp发送邮件
2012/06/05 PHP
php实现屏蔽掉黑帽SEO的搜索关键字
2015/04/15 PHP
PHP文件操作方法汇总
2015/07/01 PHP
PHP实现支付宝即时到账功能
2016/12/21 PHP
PHP调用Mailgun发送邮件的方法
2017/05/04 PHP
JavaScript的parseInt 进制问题
2009/05/07 Javascript
js性能优化 如何更快速加载你的JavaScript页面
2012/03/17 Javascript
Jquery判断$("#id")获取的对象是否存在的方法
2013/09/25 Javascript
jQuery Position方法使用和兼容性
2017/08/23 jQuery
springmvc接收jquery提交的数组数据代码分享
2017/10/28 jQuery
支付宝小程序自定义弹窗dialog插件的实现代码
2018/11/30 Javascript
jQuery简单实现根据日期计算星期几的方法
2019/01/09 jQuery
Vue v-text指令简单使用方法示例
2019/09/19 Javascript
vue-router之实现导航切换过渡动画效果
2019/10/31 Javascript
JS表格的动态操作完整示例
2020/01/13 Javascript
vue项目中自定义video视频控制条的实现代码
2020/04/26 Javascript
在Django的模型中添加自定义方法的示例
2015/07/21 Python
用Pygal绘制直方图代码示例
2017/12/07 Python
python3实现基于用户的协同过滤
2018/05/31 Python
PyQt 图解Qt Designer工具的使用方法
2019/08/06 Python
自适应线性神经网络Adaline的python实现详解
2019/09/30 Python
localStorage、sessionStorage使用总结
2017/11/17 HTML / CSS
Nayomi官网:沙特阿拉伯王国睡衣和内衣品牌
2020/12/19 全球购物
学前教育专业毕业生自荐信
2013/10/03 职场文书
文明餐桌活动方案
2014/02/11 职场文书
班长演讲稿范文
2014/04/24 职场文书
环保小标语
2014/06/13 职场文书
2015年助理政工师工作总结
2015/05/26 职场文书
圣诞晚会主持词开场白
2015/05/28 职场文书
团结友爱主题班会
2015/08/13 职场文书
小学语文新课改心得体会
2016/01/22 职场文书
简单聊聊Vue中的计算属性和属性侦听
2021/10/05 Vue.js
CentOS7环境下MySQL8常用命令小结
2022/06/10 Servers