用python写个翻译小脚本

想法:有的时候,想开始一个项目,但是在给项目起一个合适的英文名的时候突然被英语词汇量拦住了,怎么办?那就打开浏览器搜个翻译软件查询咯,但是这样过程略显繁琐,想着自己写个小脚本,要用的时候直接命令行敲就行了。也不用再打开一个浏览器那么多步骤了。说干就干。

设计
运行在命令行如这种形式: python3 translate.py 源 目的

运用的包
requests: 来构造访问请求
hashlib: 百度翻译api接口要求每次翻译都带有一个md5加密后的签名
sys: 用来获取命令行参数。

使用方法:
python3 translate.py query result # 将query翻译成result指定的语言.
python3 translate.py -h # 获取帮助文档

源代码:

import requests
import hashlib
import sys


def main():
    """
    param1:查询字符,为自动判断
    param2:目的字符,可选参数有
    zh:中文
    en:英文
    yue:粤语
    wyw:文言文
    """
    # 查看帮助文档
    if sys.argv[1] == "-h":
        print(main.__doc__)
    else:
        q = sys.argv[1]
        From = "auto"
        to = sys.argv[2]
        appid = 20180922000210716
        salt = 15010110083
        sign = join(appid, q, salt)

        url1 = "http://api.fanyi.baidu.com/api/trans/vip/translate?q={}&from={}&to={}&appid={}&salt={}&sign={}".\
            format(q, From, to, appid, salt, sign)

        result_all = requests.get(url1).json()
        result_dst = result_all["trans_result"][0]["dst"]
        print(result_dst)

def join(appid, q, salt):
    """将一些列必备的参数拼接到一起,并进行md5加密"""
    appid = appid
    q = q
    salt = salt
    pwd = "wPXi4FtJeSwIK_QeRZxW"

    str1 = str(appid) + q + str(salt) + pwd

    hash = hashlib.md5()
    hash.update(str1.encode("utf-8"))
    return hash.hexdigest()


if __name__ == '__main__':
    main()

大概花了20分钟写完,没什么难度,算是夯实了下基础吧,也增加了学习的趣味性,本来只是打算做中英翻译脚本,后来发现百度翻译api还支持文言文,粤语,就都加了进去,别说,还挺有意思。就是机翻的英语还是那么醉人。
用python写个翻译小脚本_第1张图片

你可能感兴趣的:(python)