Python实现一个简易的CLI翻译程序
创始人
2024-05-16 15:35:14
0次

Python实现一个简易的CLI翻译程序

  • Python+百度翻译API实现一个简易的CLI翻译程序
    • 获取百度翻译API
    • 编写一个简单的Python程序

Python+百度翻译API实现一个简易的CLI翻译程序

之前翻译用的linux上的golddict,每次翻译都很慢。。。
所以想写一个简单快速的翻译命令行翻译软件

获取百度翻译API

百度翻译链接http://api.fanyi.baidu.com/

进去一系列注册操作之后,你可以得到一个APPID和密钥
在这里插入图片描述

编写一个简单的Python程序

文档链接http://api.fanyi.baidu.com/doc/21

在这里插入图片描述对我们来说主要的步骤就是写一个请求体去请求翻译结果

代码如下:

#!/usr/bin/python
# -*- coding: UTF-8 -*-import sys
import hashlib
import requests
import jsondef str_md5(string):"""计算字符串的md5值"""return hashlib.md5(string.encode('utf8')).hexdigest()def generate_data():"""生成请求体"""pswd = "[1]这里改成你的密钥"data = {"q": sys.argv[1],"from": "auto","to": sys.argv[2] if len(sys.argv) >= 3 else "en","appid": "[2]这里改成你的APPID","salt": "1435660288","sign": "",}s = data['appid']+data['q']+data['salt']+pswddata['sign'] = str_md5(s)return datadef translate(data):"""请求并返回结果"""return requests.post(url='https://fanyi-api.baidu.com/api/trans/vip/translate',headers={"Content-Type": "application/x-www-form-urlencoded"},data=data)# 打印提示信息
if len(sys.argv) < 2:print('Usage t  [dst_lang:en]')print('''dst_lang:中文	zh	英语	en粤语	yue	文言文	wyw	日语	jp韩语	kor	法语	fra	西班牙语	spa泰语	th	阿拉伯语	ara	俄语	ru葡萄牙语	pt	德语	de	意大利语	it希腊语	el	荷兰语	nl	波兰语	pl保加利亚语	bul	爱沙尼亚语	est	丹麦语	dan芬兰语	fin	捷克语	cs	罗马尼亚语	rom斯洛文尼亚语	slo	瑞典语	swe	匈牙利语	hu繁体中文	cht	越南语	vie''')data = generate_data()resp = translate(data).textt = json.loads(resp)# 打印结果
print(f"""[{t['from']}] -> [{t['to']}]{t["trans_result"][0]['src']} 
{t["trans_result"][0]['dst']}
""")

其中有两个[地方]需要修改就是填入你的APPID和密钥,保存为一个.py文件就可以使用了

然后就可以使用了

在这里插入图片描述
在这里插入图片描述

默认是[auto] -> [en] 你也可以修改目的语言,比如第一个我就修改成了 swe(瑞典语)

但是这样名字有点长,我在我的~/.zshrc给它取了个别名,然后放到了环境变量里面
在这里插入图片描述

现在就可以这么用了
在这里插入图片描述

相关内容

热门资讯

前端-session、jwt 目录:   (1)session (2&#x...
linux入门---制作进度条 了解缓冲区 我们首先来看看下面的操作: 我们首先创建了一个文件并在这个文件里面添加了...
关于测试,我发现了哪些新大陆 关于测试 平常也只是听说过一些关于测试的术语,但并没有使用过测试工具。偶然看到编程老师...
前缀和与对数器与二分法 1. 前缀和 假设有一个数组,我们想大量频繁的去访问L到R这个区间的和,...
nodejs:本地安装nvm实... 一、背景-使用不同版本node的原因 vue3+ts、nuxt3版本,node...
JAVA集合知识整理 Java集合知识整理 HashMap相关 HashMap的底层数据结构:jdk1.8之...
无刷直流电机介绍及单片机控制实... 无刷直流电机介绍及单片机控制实例前言基本概念优势与劣势使用寿命基本结构使用单片机控制实例电子调速器&...
fwdiary(2) dp2 1.传纸条  AcWing 275. 传纸条 - AcWing 走两条路,走一条最大的...
常用的DOS命令 常用的DOS命令 DOS(Disk Operating System,磁...
<C++> 类和对象(下) 1.const成员函数将const修饰的“成员函数”称之为const成员函数,cons...