python 英语翻译 excel_Python翻译Excel文件
朋友需要翻译大量Excel文件内容,看我是否能搭把手,我的思路很简单,就是将Excel文件内容读出后,调用翻译软件的API,然后再爬回翻译好的内容,写入Excel。
读取Excel文件内容的方法:我这里要处理的是 .xlsx文件,可以import openpyxl,如果要处理.xls文件,就不能用这个,而是import xlrd,或者先将.xks文件转为.xlsx文件再使用本文代码。具体这两个包提供的方法是如何操作Excel文件的,自行百度查看其使用文档就一眼明了了。
调用API:调用百度翻译API,可进入“百度翻译开放平台”进行用户注册,和申请使用。免费的标准版就够用,只是限制每秒最多只能访问一次。(但是免费真香= =)。
申请完后就会有自己的APP ID 和秘钥,这是访问百度翻译API时必须发送的参数。想具体知道如何使用翻译API,它的接入方式,地址,参数等等,可参考“通用翻译API接入文档”
下面逐部分放出全部代码:
mport hashlib
import random
import openpyxl
from openpyxl import Workbook
import requests
import time
引入time是因为,免费版的API限制每秒只能访问一次,如果不做停顿,结果会有很多空白= =
apiurl = 'http://api.fanyi.baidu.com/api/trans/vip/translate'
appid = '输入自己的APP ID'
secretKey = '输入自己的秘钥'
APP ID 和 秘钥 在“百度翻译开放平台”上注册完就能得到。
def translateBaidu(content, fromLang='en', toLang='zh'):
salt = str(random.randint(32768, 65536))
sign = appid + content + salt + secretKey
sign = hashlib.md5(sign.encode("utf-8")).hexdigest()
try:
paramas = {
'appid': appid,
'q': content,
'from': fromLang,
'to': toLang,
'salt': salt,
'sign': sign
}
response = requests.get(apiurl, paramas)
jsonResponse = response.json()
dst = str(jsonResponse["trans_result"]
[0]["dst"])
return dst
except Exception as e:
print(e)
这是从Excel得到翻译内容后,构造相应的请求参数,然后发送至百度翻译API,并将其翻译结果,以Json的格式获取,并剥离出来。这些参数的设计和Json结果的剥离,都可以直接从“通用翻译API接入文档”里得知。
def excelTrans(srcFilename=r'c:\Users\Administrator\Desktop\source.xlsx', desFilename=r'c:\Users\Administrator\Desktop\result.xlsx',
srcSheet='Sheet1', desSheet='result1'):
wb = openpyxl.load_workbook(srcFilename)
ws = wb[srcSheet]
wb2 = Workbook()
ws2 = wb2.create_sheet(title=desSheet)
for i in range(1, 需要翻译的那一列的行数+1):
b = ws.cell(row=i, column=1).value
print(str(b))
result = translateBaidu(str(b))
ws2.cell(row=i, column=1).value = str(result)
time.sleep(1)
wb2.save(desFilename)
srcFilename要填需要翻译的Excel文件路径,destFilename填翻译后生成的文件路径,srcSheet为需要翻译Excel文件里的哪一个表,desSheet表示在Excel文件里生成的表名。
if __name__ == '__main__':
print('start translating...')
excelTrans()
print('ending...')
代码全连起来后可用,也可根据自己的需要进行更改,比如需要翻译的源语种和目标语种可通过查 百度翻译API的开发文档更改参数;对于Excel文件的操作,则直接看openpyxl的文档或者网上总结它的常用方法,就可灵活运用了。
点赞
收藏
分享
文章举报
GuitarRed
发布了2 篇原创文章 · 获赞 0 · 访问量 57
私信
关注
python 英语翻译 excel_Python翻译Excel文件相关推荐
- python导入excel文件-python使用xlrd模块读写Excel文件的方法
本文实例讲述了python使用xlrd模块读写Excel文件的方法.分享给大家供大家参考.具体如下: 一.安装xlrd模块 到python官网下载http://pypi.python.org/pypi ...
- Python使用openpyxl模块读写excel文件
Python使用openpyxl模块读写excel文件 openpyxl是一个用于写入和读取xlsx格式的excel文件的Python模块. excel2010后的后缀名为xlsx,不再是xls,使用 ...
- [转载] Python利用openpyxl模块读取excel文件内容
参考链接: Python | 使用openpyxl模块调整Excel文件的行和列 import openpyxl wb = openpyxl.load_workbook('原始数据.xlsx') #读 ...
- python读取20万数据Excel文件+拆分数据
python读取20万数据Excel文件 使用普通的pandas读取Excel,再结合xlrd读取,可能会读取的Excel数据会不全,最多只能读取到65535+行的数,如果读取超大excel数据时就读 ...
- python实现图书管理系统——通过excel文件或者TXT文件存放数据
用python实现图书管理系统--通过excel文件或者TXT文件存放数据 话不多说,先上图,看看运行起来的效果: 由上图可知,我实现的主要功能: 用户注册 用户登录 添加图书 查询图书 删除图书 修 ...
- python 通过openpyxl来操作Excel文件(一 ):读取Excel文件
这篇文章讲python 通过openpyxl来读取Excel文件 不清楚怎么通过openpyxl来写入Excel文件的小伙伴可以看我另一篇文章 传送门python 通过openpyxl来操作Excel ...
- python 通过openpyxl来操作Excel文件(二 ):写入Excel文件
这篇文章讲python 通过openpyxl来写入Excel文件,不清楚python怎么读取Excel文件的小伙伴可以去看下我的另一篇文章 传送门https://blog.csdn.net/i_cof ...
- 在trados中翻译ppt、excel文件
ppt 文件的翻译: 1.打开trados workbench 2.打开tageditor 3.将文件拖入tageditor 4.运行workbench ,翻译 5.翻完后,打开workbench 中 ...
- python转化成excel_python转换excel成py文件
python转换excel成py文件 文件结构如下: originExcelFolder放用来转换的excel文件. targetPyFolder用来存放最后生产的py文件. setting.py用来 ...
- python创建excel_python创建Excel文件数据的方法
原博文 2018-12-07 18:41 − # -*- coding: utf-8 -*- # @Time : 2018/12/6 17:10 # @Author : suchao # @Disc: ...
最新文章
- Day3--js--可恶之变量声明提升大法.。。
- 邮箱解决任务间资源共享问题
- LeetCode上求两个排序数组中位数问题—— Median of Two Sorted Arrays
- 理解MYSQL MVCC 实现机制
- [蓝桥杯][2015年第六届真题]表格计算(递归+记忆化)
- java content()_Java contentEquals() 方法
- Java List接口概述
- luogu P1858 多人背包
- android随机抽奖代码_用Excel实现不放回随机抽样
- java判断包含关系contains方法的使用
- 怎么编译shell_运维如何才能学好 Shell?
- 表单美化+html+css
- 基于java小区物业管理系统
- 元器件中关于晶体二极管的小小知识 2021-09-07
- Android 模块化开发
- (3)Android常见界面控件
- 教你把多个视频合并成一个视频的方法
- 一个优秀的UI界面应该是什么样的
- torch tensor复数运算
- jQuery获取或设置元素的属性值