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第三方库xlrd/xlwt的安装与读写Excel表格
Jan 21 Python
JS设计模式之责任链模式实例详解
Feb 03 Python
python 格式化输出百分号的方法
Jan 20 Python
Python操作Sonqube API获取检测结果并打印过程解析
Nov 27 Python
对python中assert、isinstance的用法详解
Nov 27 Python
win10安装tesserocr配置 Python使用tesserocr识别字母数字验证码
Jan 16 Python
Django实现将一个字典传到前端显示出来
Apr 03 Python
pyCharm 实现关闭代码检查
Jun 09 Python
Python3爬虫关于识别检验滑动验证码的实例
Jul 30 Python
python 生成正态分布数据,并绘图和解析
Dec 21 Python
Python LMDB库的使用示例
Feb 14 Python
pytorch 实现多个Dataloader同时训练
May 29 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开发需要注意的安全问题
2010/09/01 PHP
PHP通过正则表达式下载图片到本地的实现代码
2011/09/19 PHP
php array_multisort 对数组进行排序详解及实例代码
2016/10/27 PHP
PHP中单例模式与工厂模式详解
2017/02/17 PHP
PHP+Ajax实现的无刷新分页功能详解【附demo源码下载】
2017/07/03 PHP
PDO::inTransaction讲解
2019/01/28 PHP
PHP pthreads v3使用中的一些坑和注意点分析
2020/02/21 PHP
PHP替换Word中变量并导出PDF图片的实现方法
2020/11/26 PHP
HTML中不支持静态Expando的元素的问题
2007/03/08 Javascript
javascript 学习之旅 (2)
2009/02/05 Javascript
你必须知道的Javascript知识点之"this指针"的应用
2013/04/23 Javascript
js计算两个时间之间天数差的实例代码
2013/11/19 Javascript
js对文章内容进行分页示例代码
2014/03/05 Javascript
javascript中的取反再取反~~没有意义
2014/04/06 Javascript
教你使用javascript简单写一个页面模板引擎
2015/05/05 Javascript
js实现TAB切换对应不同颜色的代码
2015/08/31 Javascript
即将发布的jQuery 3 有哪些新特性
2016/04/14 Javascript
vue.js仿hover效果的实现方法示例
2019/01/28 Javascript
24个ES6方法解决JS实际开发问题(小结)
2020/05/31 Javascript
解决vue bus.$emit触发第一次$on监听不到问题
2020/07/28 Javascript
Vue的Options用法说明
2020/08/14 Javascript
[01:32]DOTA2 2015国际邀请赛中国区预选赛第四日战报
2015/05/29 DOTA
在Python中使用PIL模块对图片进行高斯模糊处理的教程
2015/05/05 Python
Python 操作MySQL详解及实例
2017/04/30 Python
使用Python对Csv文件操作实例代码
2017/05/12 Python
Python退火算法在高次方程的应用
2018/07/26 Python
一篇文章搞懂Python的类与对象名称空间
2018/12/10 Python
Flask框架中request、请求钩子、上下文用法分析
2019/07/23 Python
Python 生成器,迭代,yield关键字,send()传参给yield语句操作示例
2019/10/12 Python
详解Python中pyautogui库的最全使用方法
2020/04/01 Python
销售人员自我评价怎么写
2013/09/19 职场文书
学期自我评价
2014/01/27 职场文书
环境卫生标语
2014/06/09 职场文书
优秀高中学生评语
2014/12/30 职场文书
小学课改工作总结
2015/08/13 职场文书
MySQL运行报错:“Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggre”解决方法
2022/06/14 MySQL