用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表示英文。你可以根据自己的需要更改源语言和目标语言的参数。
