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中线程编程之threading模块的使用详解
Jun 23 Python
python数据结构学习之实现线性表的顺序
Sep 28 Python
详解python中sort排序使用
Mar 23 Python
python爬虫增加访问量的方法
Aug 22 Python
对python中的*args与**kwgs的含义与作用详解
Aug 28 Python
Python标准库itertools的使用方法
Jan 17 Python
对django 2.x版本中models.ForeignKey()外键说明介绍
Mar 30 Python
浅谈pytorch 模型 .pt, .pth, .pkl的区别及模型保存方式
May 25 Python
基于python图书馆管理系统设计实例详解
Aug 05 Python
如何把python项目部署到linux服务器
Aug 26 Python
Python descriptor(描述符)的实现
Nov 15 Python
Pycharm安装python库的方法
Nov 24 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 常用算法和时间复杂度
2013/07/01 PHP
PHP生成验证码时“图像因其本身有错无法显示”的解决方法
2013/08/07 PHP
php另类上传图片的方法(PHP用Socket上传图片)
2013/10/30 PHP
php获取从html表单传递数组的方法
2015/03/20 PHP
php自动给网址加上链接的方法
2015/06/02 PHP
php实现无限级分类(递归方法)
2015/08/06 PHP
浅谈php中的访问修饰符private、protected、public的作用范围
2016/11/20 PHP
javascript新手语法小结
2008/06/15 Javascript
javascript获得CheckBoxList选中的数量
2009/10/27 Javascript
JavaScript把数组作为堆栈使用的方法
2015/03/20 Javascript
avalonjs制作响应式瀑布流特效
2015/05/06 Javascript
jQuery遍历DOM元素与节点方法详解
2016/04/14 Javascript
微信小程序 简单DEMO布局,逻辑,样式的练习
2016/11/30 Javascript
jQuery NProgress.js加载进度插件的简单使用方法
2018/01/31 jQuery
详解vue中axios的封装
2018/07/18 Javascript
使用JS代码实现俄罗斯方块游戏
2018/08/03 Javascript
angularJs复选框checkbox选中进行ng-show显示隐藏的方法
2018/10/08 Javascript
vue项目中将element-ui table表格写成组件的实现代码
2019/06/12 Javascript
vant picker+popup 自定义三级联动案例
2020/11/04 Javascript
8个非常实用的Vue自定义指令
2020/12/15 Vue.js
[50:48]LGD vs CHAOS 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/16 DOTA
zbar解码二维码和条形码示例
2014/02/07 Python
详解Python 2.6 升级至 Python 2.7 的实践心得
2017/04/27 Python
好的Python培训机构应该具备哪些条件
2018/05/23 Python
python切片及sys.argv[]用法详解
2018/05/25 Python
pandas 数据归一化以及行删除例程的方法
2018/11/10 Python
深入了解Python iter() 方法的用法
2019/07/11 Python
意大利时尚精品店:Nugnes 1920
2020/02/10 全球购物
护理专业应届毕业生推荐信
2013/11/15 职场文书
教育学专业实习生的自我鉴定
2013/11/26 职场文书
物业管理计划书
2014/01/10 职场文书
死亡证明书样本说明
2014/10/18 职场文书
归元寺导游词
2015/02/06 职场文书
刑事申诉状范文
2015/05/20 职场文书
2016教师给学生的毕业寄语
2015/12/04 职场文书
golang 比较浮点数的大小方式
2021/05/02 Golang