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批量检查网站的可用性
Sep 09 Python
Python实现抢购IPhone手机
Feb 07 Python
TensorFlow平台下Python实现神经网络
Mar 10 Python
Django后台获取前端post上传的文件方法
May 28 Python
python中将正则过滤的内容输出写入到文件中的实例
Oct 21 Python
python+pyqt5实现24点小游戏
Jan 24 Python
用uWSGI和Nginx部署Flask项目的方法示例
May 05 Python
如何安装并使用conda指令管理python环境
Jul 10 Python
Python编程快速上手——正则表达式查找功能案例分析
Feb 28 Python
python os模块常用的29种方法使用详解
Jun 02 Python
Python中常用的os操作汇总
Nov 05 Python
用Python可视化新冠疫情数据
Jan 18 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源代码加密?PHP二进制加密与解密的解决办法
2013/04/22 PHP
用函数式编程技术编写优美的 JavaScript
2006/11/25 Javascript
javascript中[]和{}对象使用介绍
2013/03/20 Javascript
Js获取数组最大和最小值示例代码
2013/10/29 Javascript
JavaScript事件详细讲解
2016/06/27 Javascript
vue init失败简单解决方法(终极版)
2017/12/22 Javascript
JavaScript 中定义函数用 var foo = function () {} 和 function foo()区别介绍
2018/03/01 Javascript
详解Angular5路由传值方式及其相关问题
2018/04/28 Javascript
H5+C3+JS实现五子棋游戏(AI篇)
2020/05/28 Javascript
highCharts提示框中显示当前时间的方法
2019/01/18 Javascript
bootstrap 日期控件 datepicker被弹出框dialog覆盖的解决办法
2019/07/09 Javascript
vue使用nprogress加载路由进度条的方法
2020/06/04 Javascript
WebStorm中如何将自己的代码上传到github示例详解
2020/10/28 Javascript
关于angular 8.1使用过程中的一些记录
2020/11/25 Javascript
跟老齐学Python之用Python计算
2014/09/12 Python
python检测是文件还是目录的方法
2015/07/03 Python
Python 爬虫图片简单实现
2017/06/01 Python
Python实现的读写json文件功能示例
2018/06/05 Python
python3.7 的新特性详解
2019/07/25 Python
python Elasticsearch索引建立和数据的上传详解
2019/08/04 Python
python中的split、rsplit、splitlines用法说明
2020/10/23 Python
彻底解决Python包下载慢问题
2020/11/15 Python
Linux开机引导的步骤是什么
2015/10/19 面试题
大学毕业感言200字
2014/03/09 职场文书
四风问题专项整治工作情况报告
2014/10/28 职场文书
英文感谢信范文
2015/01/21 职场文书
我们的节日重阳节活动总结
2015/03/24 职场文书
行政主管岗位职责范本
2015/04/09 职场文书
被告答辩状范文
2015/05/22 职场文书
汉字听写大会观后感
2015/06/12 职场文书
2015入党自传书范文
2015/06/26 职场文书
经销商会议开幕词
2016/03/04 职场文书
Java org.w3c.dom.Document 类方法引用报错
2021/08/07 Java/Android
用Python爬取英雄联盟的皮肤详细示例
2021/12/06 Python
在NumPy中深拷贝和浅拷贝相关操作的定义和背后的原理
2022/04/14 Python
Golang gRPC HTTP协议转换示例
2022/06/16 Golang