美文网首页
Python 批量翻译表格内容

Python 批量翻译表格内容

作者: 火卫控 | 来源:发表于2023-06-02 20:25 被阅读0次

Python 批量翻译表格内容

大段文本翻译我们可以利用市面上翻译软件完成,但是如果数据是List或者表格形式,需要翻译并写入表格,使用现有软件就不是很方便,于是可以通过翻译API来循环翻译,写入表格

软件环境:

Win10
Python3.10.9
pandas
openxyl

步骤:

  1. 现需要申请翻译API(百度翻译API)
  2. 读入excel的相应数据到单元格
  3. 使用循环去读取数据并翻译
  4. 将原始数据和翻译后数据整合写入表格文件

注:代码中的API 和 KEY已经处理过失效,需要自行申请,有免费额度,一般够个人使用。

生成文本内容如下:


生成excel文件内容

代码如下:

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")

感谢阅览,有任何问题欢迎交流!

相关文章

网友评论

      本文标题:Python 批量翻译表格内容

      本文链接:https://www.haomeiwen.com/subject/ywrmedtx.html