命令行翻译工具 - trans.py

在写代码的时候,或看文档的时候遇到不认识的单词,或是如下操作:

  • 启动浏览器
  • 输入fanyi.baidu.com
  • 输入单词点击翻译

一顿操作猛如虎,得到了翻译结果,其实用起来感觉不是那么顺手
程序员总是会开着一个控制台的,如果能通过命令行来查单词,是不是感觉挺方便,像下面这样:

kylindai-mac:tools hongbin.dhb$ trans panic
恐慌
kylindai-mac:tools hongbin.dhb$

下面python是代码:

#!/usr/bin/env python3
# -*- coding: utf-8 -*-

import sys
import http.client
import hashlib
import urllib
import random
import json

app_id = 'YOUR_BAIDU_APP_ID'
app_secret = 'YOUR_BAIDU_APP_SECRET'

def com_trans(q, from_lang, to_lang):
	host = 'api.fanyi.baidu.com'
	url = '/api/trans/vip/translate'

	salt = random.randint(32768, 65536)
	sign1 = app_id + q + str(salt) + app_secret
	m = hashlib.md5()
	m.update(sign1.encode('utf-8'))
	sign2 = m.hexdigest()

	url = url + '?appid=' + app_id + \
	      '&q=' + urllib.parse.quote(q) + \
	      '&from=' + from_lang + \
	      '&to=' + to_lang + \
	      '&salt=' + str(salt) + \
	      '&sign=' + sign2

	conn = http.client.HTTPConnection(host)
	conn.request("GET", url)

	resp = conn.getresponse()
	data = resp.read()
	resp = bytes.decode(data)
	# print(resp1)
	# print(bytes.decode(data1))
	# print(str(data1, "utf-8"))

	result = json.loads(resp)
	print('通用:', result['trans_result'][0]['dst'])

	conn.close()


def fin_trans(q, from_lang, to_lang):
	host = 'fanyi-api.baidu.com'
	url = '/api/trans/vip/fieldtranslate'

	salt = random.randint(32768, 65536)
	sign1 = app_id + q + str(salt) + 'finance' + app_secret
	m = hashlib.md5()
	m.update(sign1.encode('utf-8'))
	sign2 = m.hexdigest()

	url = url + '?appid=' + app_id + \
	      '&domain=finance' + \
	      '&q=' + urllib.parse.quote(q) + \
	      '&from=' + from_lang + \
	      '&to=' + to_lang + \
	      '&salt=' + str(salt) + \
	      '&sign=' + sign2

	conn = http.client.HTTPConnection(host)
	conn.request("GET", url)

	resp = conn.getresponse()
	data = resp.read()
	resp = bytes.decode(data)
	# print(resp1)
	# print(bytes.decode(data1))
	# print(str(data1, "utf-8"))

	result = json.loads(resp)
	print('财经:', result['trans_result'][0]['dst'])

	conn.close()


if __name__ == '__main__':
	if len(sys.argv) == 1:
		quit()

	q = sys.argv[1]
	com_trans(q, 'en', 'zh')
	fin_trans(q, 'en', 'zh')
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值