python批量将excel内容进行翻译写入功能


Posted in Python onOctober 10, 2019

由于小编初来乍到,有很多地方不是很到位,还请见谅,但是很实用的哦!

1.首先是需要进行文件的读写操作,需要获取文件路径,方式使用os.listdir(路径)进行批量查找文件。

file_path = ‘/home/xx/xx/xx'
# ret 返回一个列表
ret = list_dir = os.listdir(file_path)
# 遍历列表,获取需要的结尾文件(只考虑获取文件,不考虑执行效率)
for i in ret :
    if i.endswith('xlsx'):
    # 执行的逻辑

2.改写一下我调用的翻译接口

def baidu_translate(appi, secretKe, content):
  appid = appi
  secretKey = secretKe
  httpClient = None
  myurl = '/api/trans/vip/translate'
  q = content
  fromLang = 'zh' # 源语言
  toLang = 'en' # 翻译后的语言
  salt = random.randint(32768, 65536)
  sign = appid + q + str(salt) + secretKey
  sign = hashlib.md5(sign.encode()).hexdigest()
  myurl = myurl + '?appid=' + appid + '&q=' + urllib.parse.quote(
    q) + '&from=' + fromLang + '&to=' + toLang + '&salt=' + str(
    salt) + '&sign=' + sign
  try:
    httpClient = http.client.HTTPConnection('api.baidu_translation.baidu.com')
    httpClient.request('GET', myurl)
    response = httpClient.getresponse()
    jsonResponse = response.read().decode("utf-8") # 获得返回的结果,结果为json格式
    js = json.loads(jsonResponse) # 将json格式的结果转换字典结构
    dst = str(js["trans_result"][0]["dst"]) # 取得翻译后的文本结果
    print(dst) # 打印结果
    return dst
  except Exception as e:
    print(e)
  finally:
    if httpClient:
      httpClient.close()

3.现在需要进行读取excel的内容,使用方法,xlrd,小编使用的翻译是借用的百度翻译的API,获取excel内容,传递给API

import hashlib
import http.client
import json
import os
import random
import time
import urllib
import openpyxl
import xlrd
# 借用上边所述的文件路径操作
# appid :翻译API提供,需要注册获取
# secretKey :翻译API提供,需要注册获取
def read_excel(file_path, appid, secretKey):
  list_dir = os.listdir(file_path)
  for i in list_dir:
    if i.endswith('.xlsx'):
     # 拼接获取绝对路径
      file_path = file_path + '\\' + i
      rbook = xlrd.open_workbook(filename=file_path)
      rbook.sheets()
      # 获取excel某页数据
      sheet1 = rbook.sheet_by_index(0)
      row_num = sheet1.nrows
      for num in range(row_num):
        try:
         # 小编这样写的原因是我值获取指定列的数据,
         # 例如现在获取第3,4列数据
          txt1 = sheet1.cell_value(num, 3)
          txt2 = sheet1.cell_value(num, 4)
          # 为了2列数据可以同时进行翻译
          txt = txt1 + '=' + txt2
          # ret返回翻译结果
          ret = baidu_translate(appid, secretKey, txt)  
          
          # 防止调用接口出错
          time.sleep(1)
          # 将翻译结果在写如excel
          write_excel(ret, num, file_path)
        except Exception as e:
          print(e)
          continue

4.因为上一步调用了这个写入excel的函数,所有我们需要写一个函数来完成写入的操作。

def write_excel(ret, num, file_path):
  f_txt = file_path
  book = openpyxl.load_workbook(f_txt)
  sheet1 = book.worksheets[0]
  # 在这个地方是获取某列写入
  txtE = 'F' + str(num + 1)
  txtF = 'G' + str(num + 1)
  s_txt = ret.split('=')
  sheet1[txtE] = s_txt[0]
  sheet1[txtF] = s_txt[1]
  book.save(f_txt)
  
if __name__ == '__main__':
  appid = 'xxxx'
  secretKey = 'xxxx'
  path = r'xxx'
  read_excel(path, appid, secretKey)

总结

以上所述是小编给大家介绍的python批量将excel内容进行翻译写入功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

Python 相关文章推荐
使用Python的Bottle框架写一个简单的服务接口的示例
Aug 25 Python
Windows下Python2与Python3两个版本共存的方法详解
Feb 12 Python
Python之自动获取公网IP的实例讲解
Oct 01 Python
python中如何使用正则表达式的集合字符示例
Oct 09 Python
Python实现批量读取图片并存入mongodb数据库的方法示例
Apr 02 Python
解决安装python库时windows error5 报错的问题
Oct 21 Python
详解Python可视化神器Yellowbrick使用
Nov 11 Python
python做接口测试的必要性
Nov 20 Python
Python数据相关系数矩阵和热力图轻松实现教程
Jun 16 Python
浅谈keras 的抽象后端(from keras import backend as K)
Jun 16 Python
python Tornado框架的使用示例
Oct 19 Python
Python中np.random.randint()参数详解及用法实例
Sep 23 Python
Python爬虫爬取Bilibili弹幕过程解析
Oct 10 #Python
安装python及pycharm的教程图解
Oct 10 #Python
Pytorch中的variable, tensor与numpy相互转化的方法
Oct 10 #Python
3行Python代码实现图像照片抠图和换底色的方法
Oct 10 #Python
python通过SSH登陆linux并操作的实现
Oct 10 #Python
Python对接支付宝支付自实现功能
Oct 10 #Python
python3中的eval和exec的区别与联系
Oct 10 #Python
You might like
PHP开发文件系统实例讲解
2006/10/09 PHP
PHP insert语法详解
2008/06/07 PHP
PHP学习 运算符与运算符优先级
2008/06/15 PHP
php 模拟 asp.net webFrom 按钮提交事件实例
2014/10/13 PHP
项目中应用Redis+Php的场景
2016/05/22 PHP
PHP操作MySQL中BLOB字段的方法示例【存储文本与图片】
2017/09/15 PHP
使用PHPStorm+XDebug搭建单步调试环境
2017/11/19 PHP
Laravel 框架基于自带的用户系统实现登录注册及错误处理功能分析
2020/04/14 PHP
用表格输出1-1000之间的数字实现代码(附特效)
2013/04/21 Javascript
jquery实现控制表格行高亮实例
2013/06/05 Javascript
JavaScript设置IFrame高度自适应(兼容各主流浏览器)
2013/06/05 Javascript
异步安全加载javascript文件的方法
2015/07/21 Javascript
Ajax+FormData+javascript实现无刷新表单信息提交
2016/10/24 Javascript
vue中计算属性(computed)、methods和watched之间的区别
2017/07/27 Javascript
javascript自定义事件功能与用法实例分析
2017/11/08 Javascript
webpack多页面开发实践
2017/12/18 Javascript
angular中如何绑定iframe中src的方法
2019/02/01 Javascript
vue实现多条件和模糊搜索功能
2019/05/28 Javascript
javascript局部自定义鼠标右键菜单
2020/12/08 Javascript
详解python中xlrd包的安装与处理Excel表格
2016/12/16 Python
Python urls.py的三种配置写法实例详解
2017/04/28 Python
python 判断是否为正小数和正整数的实例
2017/07/23 Python
python模块之time模块(实例讲解)
2017/09/13 Python
Pycharm中Python环境配置常见问题解析
2020/01/16 Python
Python性能分析工具py-spy原理用法解析
2020/07/27 Python
美国玛丽莎收藏奢华时尚商店:Marissa Collections
2016/11/21 全球购物
比利时香水网上商店:NOTINO
2018/03/28 全球购物
英国婴儿和儿童服装网站:Vertbaudet
2018/04/02 全球购物
展会邀请函范文
2014/01/26 职场文书
未受刑事制裁公证证明
2014/09/20 职场文书
合作协议书模板2014
2014/09/26 职场文书
银行党员批评与自我批评
2014/10/15 职场文书
个人政风行风自查自纠报告
2014/10/21 职场文书
幼儿园学前班幼儿评语
2014/12/29 职场文书
婚礼父母致辞
2015/07/28 职场文书
Kubernetes关键组件与结构组成介绍
2022/03/31 Servers