python使用百度api翻译中英文

写程序取变量名的时候,常常需要翻译单词,或者将中文翻译成英语.有道词典,必应词典都很好,可是...命令行习惯了还是觉得用在cmd里面调出程序使用起来也许会更爽.于是查了查python相关的翻译脚本.都很简单,获取网页,然后解析,没找到用requeset库的.于是自己用request库写了个.. 虽然简单,但是实用就好啦~~ 上网搜索发下百度的翻译api有demo

稍微修改一下就可以直接使用了

#coding=utf8

import httplib
import md5
import urllib
import random
import json '''
appid 申请 http://api.fanyi.baidu.com/api/trans/product/apiapply
''' appid = '20151113000005349'
secretKey = 'osubCEzlGjzvw8qdQc41' httpClient = None def requestTranslate(word,fromLang = 'en',toLang="zh"):
salt = random.randint(32768, 65536)
sign = appid+word+str(salt)+secretKey
m1 = md5.new()
m1.update(sign)
sign = m1.hexdigest() httpClient = httplib.HTTPConnection('api.fanyi.baidu.com')
myurl = '/api/trans/vip/translate'
myurl = myurl+'?appid='+appid+'&q='+urllib.quote(word)+'&from='+fromLang+'&to='+toLang+'&salt='+str(salt)+'&sign='+sign
httpClient.request('GET', myurl)
#response是HTTPResponse对象
response = httpClient.getresponse()
result = response.read()
ret = json.loads(result)
print(ret["trans_result"][0]["dst"])
httpClient.close() #判断首字母是否是英文字母从而判断是英译汉or汉译英
def is_english_char(ch):
if ord(ch) not in range(97,122) and ord(ch) not in range(65,90):
return False
return True if __name__ == '__main__':
import sys
word = (len(sys.argv) > 1) and sys.argv[1] or None
queryOnce = (word != None) while True:
try:
if word == None:
word = raw_input("\n input word to translate ,#[ input \"!\"exit ]\n>") if word == "!":
break fromLang = "en"
toLang = "zh"
if not is_english_char(word[0]):
fromLang = "zh"
toLang = "en"
word = word.decode('gbk').encode('utf-8') requestTranslate(word,fromLang,toLang)
word = None if queryOnce == True:
break
except Exception,e:
print('!!!!! catch error!! ' + str(e))
word = None

推荐将如下 脚本放在 环境变量里边,直接 win+r , tw english 或者 tw 中文~~

效果更快

@echo off
set OLD_DIR=%cd%
set DIR=%~dp0
cd /d %DIR% python .\translate_word_new.py %1 pause

python使用百度api翻译中英文的更多相关文章

  1. 爬虫-python调用百度API/requests

    from urllib.request import urlopen import requests import json url = "http://apis.baidu.com/txa ...

  2. Python 调用百度翻译API

    由于实习公司这边做的是日文app,有时要看看用户反馈,对于我这种五十音图都没记住的人,表示百度翻译确实还可以.但不想每次都复制粘贴啊,google被墙也是挺蛋疼的事,所以用python结合baidu ...

  3. Python汉英/英汉翻译(百度API/有道API)

    一.百度API实现 Step1:申请API Key 以前用过BAE,已经有了Api Key,没有的可以去申请 Step2:挺简单,直接看实现的代码吧 ```python #coding:utf-8 i ...

  4. Python获得百度统计API的数据并发送邮件

    Python获得百度统计API的数据并发送邮件 小工具  本来这么晚是不准备写博客的,当是想到了那个狗子绝对会在开学的时候跟我逼逼这个事情,所以,还是老老实实地写一下吧.   Baidu统计API的使 ...

  5. Python + 百度Api 通过地址关键字获得格式化的地址信息

    由于用户输入是千奇百怪的,除了格式语法不合要求之外的,即便是所谓的合法数据也是五花八门.尤其是地址,所有才由此文. 百度Api注册一个账号,创建一个应用后就会有一个`ak`的参数,就够了. Pytho ...

  6. Python爬虫之百度API调用

    调用百度API获取经纬度信息. import requests import json address = input('请输入地点:') par = {'address': address, 'ke ...

  7. HTML实现调用百度在线翻译API

    HTML实现调用百度在线翻译API 本文章已收录于:   <!doctype html> <html lang="en"> <head> < ...

  8. C#调百度通用翻译API翻译HALCON的示例描述

    目录 准备工作 参数简介 输入参数 输出参数 使用HttpClient 翻译工具类 应用:翻译HALCON的示例描述 准备工作 HALCON示例程序的描述部分一直是英文的,看起来很不方便.我决定汉化一 ...

  9. 转载:Python 实现百度翻译

    来源: https://blog.csdn.net/qq_44814439/article/details/105642066 作者: Chloemxc 功能: Python 实现百度翻译 from ...

随机推荐

  1. 使用Servlet3.0新特性asyncSupported=true时抛异常java.lang.IllegalStateException: Not supported

    最近在运用Servlet3.0新特性:异步处理功能的时候出现以下了2个问题: 运行时会抛出以下两种异常: 一月 19, 2014 3:07:07 下午 org.apache.catalina.core ...

  2. Linux云服务器下Tomcat部署超详细

    基于阿里云Centos 7服务器的Tomcat 项目部署 工具:一台安装jdk1.8的Centos 6/7.X 云服务器(64位) Putty  ssh远程连接云服务器的软件 FileZillaCli ...

  3. Sass之二(进阶篇)

    源码链接:http://pan.baidu.com/s/1o8M51hC 1. 数据类型 1.1 Number 数字类型,小数类型,带有像素单位的数字类型,全部都属于Number类型 Number类型 ...

  4. Spring---Bean的继承与依赖

    Spring 允许继承 bean 的配置(通过Bean的parent属性来指定,例如parent=”teacher“), 被继承的 bean 称为父 bean.   继承这个父 Bean 的 Bean ...

  5. 解决Cell重绘导致 重复的问题

    IOS在Cell上的优化令人觉得底层框架的成熟,可是有些情形却会造成不必要的麻烦, 当使用了 UITableViewCell *cell = [tableView dequeueReusableCel ...

  6. intellij idea 重命名或复制一个项目(不用重启)

    Idea 内无法直接修改Explorer 里文件夹的名称,只能手动改文件夹的名称. 目前找到的最好的方法: 1)重命名一个项目 在Idea 项目关闭状态下,在 Explorer (Windows) / ...

  7. 查看MySQL变量

    类似于Oracle的参数文件,MySQL的选项文件(如my.cnf)用于配置MySQL服务器,但和Oracle叫法不一样,在MySQL里, 官方叫变量(Varialbes),但其实叫参数也是可以的,只 ...

  8. 20165324 Java实验一

    20165324 实验一 一.实验报告封面 课程:Java程序设计 班级:1653班 姓名:何春江 学号:20165324 指导教师:娄嘉鹏 实验日期:2018年4月2日 实验时间:13:45 - 1 ...

  9. 使用Webdriver执行JS

    首先,我们使用如下方式初始化driver: WebDriver driver = new FirefoxDriver(); JavascriptExecutor jse = (JavascriptEx ...

  10. mysql数据库从删库到跑路之mysql存储引擎

    一 什么是存储引擎 mysql中建立的库===>文件夹 库中建立的表===>文件 现实生活中我们用来存储数据的文件应该有不同的类型:比如存文本用txt类型,存表格用excel,存图片用pn ...