Python 批量翻译表格内容
大段文本翻译我们可以利用市面上翻译软件完成,但是如果数据是List或者表格形式,需要翻译并写入表格,使用现有软件就不是很方便,于是可以通过翻译API来循环翻译,写入表格
软件环境:
Win10
Python3.10.9
pandas
openxyl
步骤:
- 现需要申请翻译API(百度翻译API)
- 读入excel的相应数据到单元格
- 使用循环去读取数据并翻译
- 将原始数据和翻译后数据整合写入表格文件
注:代码中的API 和 KEY已经处理过失效,需要自行申请,有免费额度,一般够个人使用。
生成文本内容如下:

代码如下:
import pandas as pd
import requests
import hashlib # 用来计算MD5码
from openpyxl import Workbook
def fanyi(shuru):
header = {
'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36',
'Content-Type': 'application/x-www-form-urlencoded'
}
# appid, salt, key = "appid", "随机码", "密钥"
appid, salt, key = "20190225000270925", "2", "TA4KeyDi4h7AzuOgbAVH"
q = shuru
sign = appid+q+salt+key
md5 = hashlib.md5()
md5.update(sign.encode('utf-8')) # 生成签名计算MD5码
data = {
"q": q,
"from": "auto",
"to": "zh",
"appid": appid,
"salt": salt,
"sign": md5.hexdigest()
}
response = requests.post('https://fanyi-api.baidu.com/api/trans/vip/translate',headers=header, data=data ) # 发送post请求
text = response.json() # 返回的为json格式用json接收数据
print(text)
shuchu = text['trans_result'][0]['dst']
return shuchu
# 利用pandas读取原始表格数据列
excel_path = r"D:\GZlab_W_AQY\实验记录\药物筛选\2023.5-第一次大规模筛选\简要结果--modify-aqy-Hit_list-p1-10(75percent)-2023.5.22V1.xlsx"
workbook = pd.read_excel(excel_path)
wb = Workbook()
a = workbook['Information']
a = list(a)
# 依次读取单元格并翻译文本,并写入列表
trans = []
for i in a:
b = fanyi(str(i))
trans.append(b)
# 将原始文本列和翻译文本列合并生成DataFrame数据框
data=[]
datas=[]
for i in range(len(a)):
data=[]
data.append(a[i])
data.append(trans[i])
datas.append(data)
# 将DataFrame数据框写入到新的xlsx中
re = pd.DataFrame(datas,columns=["a","trans"],dtype=str)
re.to_excel(excel_path[:-5]+"fanyi2.xlsx", sheet_name="fanyi")
感谢阅览,有任何问题欢迎交流!
网友评论