欢迎访问宙启技术站
智能推送

用Python编写一个简单的命令行翻译工具

发布时间:2023-12-04 16:57:22

以下是一个用Python编写的简单命令行翻译工具的示例代码:

#import必要的库和模块
import requests
import hashlib
import random
import json
import argparse

#翻译函数
def translate(text, from_lang, to_lang):
    appid = 'your_appid'  # 在百度翻译开放平台申请的app id
    secret_key = 'your_secretkey'  # 在百度翻译开放平台申请的secret key
    api_url = 'https://fanyi-api.baidu.com/api/trans/vip/translate'

    #生成随机的salt值
    salt = random.randint(32768, 65536)

    #生成签名
    sign = appid+text+str(salt)+secret_key
    sign = hashlib.md5(sign.encode()).hexdigest()

    #构建请求参数
    params = {
        'q': text,
        'from': from_lang,
        'to': to_lang,
        'appid': appid,
        'salt': salt,
        'sign': sign
    }

    #发送请求并获取翻译结果
    response = requests.get(api_url, params=params)
    result = json.loads(response.text)
    translation = result['trans_result'][0]['dst']

    return translation

#命令行解析器
def parse_arguments():
    parser = argparse.ArgumentParser(description='A simple command-line translation tool.')
    parser.add_argument('-f', '--from_lang', help='The language to translate from', required=True)
    parser.add_argument('-t', '--to_lang', help='The language to translate to', required=True)
    parser.add_argument('text', help='The text to be translated', nargs='*')

    return parser.parse_args()

#主函数
def main():
    args = parse_arguments()
    text = ' '.join(args.text)  # 将多个输入单词合并为一个字符串

    translation = translate(text, args.from_lang, args.to_lang)
    print('Translation:', translation)

if __name__ == '__main__':
    main()

使用示例:

假设你的代码文件名为translate.py,你可以在命令行中运行以下命令来翻译文本:

python translate.py -f en -t zh hello world

上述命令中,-f--from_lang参数表示源语言,-t--to_lang参数表示目标语言,hello world是要翻译的文本。运行该命令后,你将得到一个输出:

Translation: 你好,世界

这里的zh表示中文, en表示英文。你可以根据自己的需要更改源语言和目标语言的参数。