用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中的wxPython实现最基本的浏览器功能
Apr 14 Python
python任务调度实例分析
May 19 Python
Python如何实现守护进程的方法示例
Feb 08 Python
Python实现将罗马数字转换成普通阿拉伯数字的方法
Apr 19 Python
Python装饰器原理与用法分析
Apr 30 Python
Python(Django)项目与Apache的管理交互的方法
May 16 Python
python smtplib模块自动收发邮件功能(一)
May 22 Python
如何修复使用 Python ORM 工具 SQLAlchemy 时的常见陷阱
Nov 19 Python
Tensorflow训练MNIST手写数字识别模型
Feb 13 Python
Python 如何创建一个简单的REST接口
Jul 30 Python
一些关于python 装饰器的个人理解
Aug 31 Python
Python pandas读取CSV文件的注意事项(适合新手)
Jun 20 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的网址
2006/11/25 PHP
服务器端解压缩zip的脚本
2006/12/22 PHP
深入剖析PHP中printf()函数格式化使用
2016/05/23 PHP
JavaScript 判断日期格式是否正确的实现代码
2011/07/04 Javascript
javascript full screen 全屏显示页面元素的方法
2013/09/27 Javascript
node爬取微博的数据的简单封装库nodeweibo使用指南
2015/01/02 Javascript
angular中使用路由和$location切换视图
2015/01/23 Javascript
纯JS实现本地图片预览的方法
2015/07/31 Javascript
玩转JavaScript OOP - 类的实现详解
2016/06/08 Javascript
Node接收电子邮件的实例代码
2017/07/21 Javascript
json数据传到前台并解析展示成列表的方法
2018/08/06 Javascript
Electron-vue脚手架改造vue项目的方法
2018/10/22 Javascript
vue中组件通信的八种方式(值得收藏!)
2019/08/09 Javascript
vant 中van-list的用法说明
2020/11/11 Javascript
[01:32]完美世界DOTA2联赛10月29日精彩集锦
2020/10/30 DOTA
[01:08:32]DOTA2-DPC中国联赛 正赛 DLG vs PHOENIX BO3 第二场 1月18日
2021/03/11 DOTA
python计算最小优先级队列代码分享
2013/12/18 Python
python通过floor函数舍弃小数位的方法
2015/03/17 Python
Python中List.count()方法的使用教程
2015/05/20 Python
pandas 读取各种格式文件的方法
2018/06/22 Python
python打开使用的方法
2019/09/30 Python
python实现实时视频流播放代码实例
2020/01/11 Python
Python如何转换字符串大小写
2020/06/04 Python
PyInstaller运行原理及常用操作详解
2020/06/13 Python
荷兰DOD药房中文官网:DeOnlineDrogist
2020/12/27 全球购物
《七颗钻石》教学反思
2014/02/28 职场文书
关于环保的建议书400字
2014/03/12 职场文书
大学三年计划书范文
2014/04/30 职场文书
2014年党员个人剖析材料
2014/10/08 职场文书
教师考核表个人总结
2015/02/12 职场文书
社区法制宣传月活动总结
2015/05/07 职场文书
学校中层领导培训心得体会
2016/01/11 职场文书
2016年九九重阳节活动总结
2016/04/01 职场文书
2016年“11.11”光棍节活动总结
2016/04/05 职场文书
导游词之潮音寺
2019/09/26 职场文书
MySQL不使用order by实现排名的三种思路总结
2021/06/02 MySQL