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中分数的相关使用教程
Mar 30 Python
简单总结Python中序列与字典的相同和不同之处
Jan 19 Python
Python编程之列表操作实例详解【创建、使用、更新、删除】
Jul 22 Python
详解python中的 is 操作符
Dec 26 Python
python列表的增删改查实例代码
Jan 30 Python
Django重装mysql后启动报错:No module named ‘MySQLdb’的解决方法
Apr 22 Python
numpy给array增加维度np.newaxis的实例
Nov 01 Python
Python socket实现多对多全双工通信的方法
Feb 13 Python
提升Python程序性能的7个习惯
Apr 14 Python
python通过paramiko复制远程文件及文件目录到本地
Apr 30 Python
Python文字截图识别OCR工具实例解析
Mar 05 Python
python使用QQ邮箱实现自动发送邮件
Jun 22 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表达式
2006/10/09 PHP
php获取远程图片体积大小的实例
2013/11/12 PHP
php分享朋友圈的实现代码
2019/02/18 PHP
YII2框架使用控制台命令的方法分析
2020/03/18 PHP
List Information About the Binary Files Used by an Application
2007/06/18 Javascript
JavaScript 设计模式 富有表现力的Javascript(一)
2010/05/26 Javascript
js中关于new Object时传参的一些细节分析
2011/03/13 Javascript
JS获取图片实际宽高及根据图片大小进行自适应
2013/08/11 Javascript
JavaScript打印iframe内容示例代码
2013/08/20 Javascript
jquery操作复选框(checkbox)的12个小技巧总结
2014/02/04 Javascript
Bootstrap每天必学之js插件
2015/11/30 Javascript
BootStrap使用file-input插件上传图片的方法
2016/09/05 Javascript
jquery插件treegrid树状表格的使用方法详解(.Net平台)
2017/01/03 Javascript
原生JS实现《别踩白块》游戏(兼容IE)
2017/02/20 Javascript
jQuery设置图片等比例缩小的方法
2017/04/29 jQuery
vue2.0 和 animate.css的结合使用
2017/12/12 Javascript
vue开发环境配置跨域的方法步骤
2019/01/16 Javascript
jQuery实现带进度条的轮播图
2020/09/13 jQuery
Python3中lambda表达式与函数式编程讲解
2019/01/14 Python
python 获取毫秒数,计算调用时长的方法
2019/02/20 Python
pytorch标签转onehot形式实例
2020/01/02 Python
Pycharm配置PyQt5环境的教程
2020/04/02 Python
python实现秒杀商品的微信自动提醒功能(代码详解)
2020/04/27 Python
用opencv给图片换背景色的示例代码
2020/07/08 Python
编写python代码实现简单抽奖器
2020/10/20 Python
关于PySnooper 永远不要使用print进行调试的问题
2021/03/04 Python
在线服装零售商:SheIn
2016/07/22 全球购物
2019史上最全Database工程师题库
2015/12/06 面试题
母校寄语大全
2014/04/10 职场文书
论文评语大全
2014/04/29 职场文书
分公司经理任命书
2014/06/05 职场文书
爱护公共设施倡议书
2014/08/29 职场文书
2014年教学工作总结
2014/11/13 职场文书
七年级写作指导之游记作文
2019/10/07 职场文书
windows安装python超详细图文教程
2021/05/21 Python
Python编解码问题及文本文件处理方法详解
2021/06/20 Python