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程序语言快速上手教程
Jul 18 Python
Python守护进程(daemon)代码实例
Mar 06 Python
Python实现简单状态框架的方法
Mar 19 Python
CentOS 7下安装Python 3.5并与Python2.7兼容并存详解
Jul 07 Python
Python基于回溯法子集树模板解决找零问题示例
Sep 11 Python
Python格式化输出%s和%d
May 07 Python
Python 3.8正式发布,来尝鲜这些新特性吧
Oct 15 Python
python实现图片上添加图片
Nov 26 Python
python和node.js生成当前时间戳的示例
Sep 29 Python
python 检测图片是否有马赛克
Dec 01 Python
python 逐步回归算法
Apr 06 Python
Python&Matlab实现灰狼优化算法的示例代码
Mar 21 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递归列出所有文件和目录的代码
2008/09/10 PHP
php 8小时时间差的解决方法小结
2009/12/22 PHP
Eclipse中php插件安装及Xdebug配置的使用详解
2013/04/25 PHP
PHP 文件编程综合案例-文件上传的实现
2013/07/03 PHP
[原创]PHP简单开启curl的方法(测试可行)
2016/01/11 PHP
Zend Framework教程之模型Model用法简单实例
2016/03/04 PHP
PHP弱类型的安全问题详细总结
2016/09/25 PHP
PHP count()函数讲解
2019/02/03 PHP
jquery得到font-size属性值实现代码
2013/09/30 Javascript
jQuery Ajax使用实例
2015/04/16 Javascript
jQuery实现动态添加和删除一个div
2015/08/12 Javascript
javascript用正则表达式过滤空格的实现代码
2016/06/14 Javascript
浅析JavaScriptSerializer类的序列化与反序列化
2016/11/22 Javascript
详解JavaScript模块化开发
2016/12/04 Javascript
jQuery中值得注意的trigger方法浅析
2016/12/12 Javascript
通过js修改input、select默认字体颜色
2017/04/19 Javascript
JS触摸事件、手势事件详解
2017/05/04 Javascript
Javascript网页抢红包外挂实现分享
2018/01/11 Javascript
js代码规范之Eslint安装与配置详解
2018/09/08 Javascript
vue移动端实现手机左右滑动入场动画
2020/06/17 Javascript
js最全的数组的降维5种办法(小结)
2020/04/28 Javascript
JavaScript Image对象实现原理实例解析
2020/08/26 Javascript
JavaScript如何操作css
2020/10/24 Javascript
Python Django Vue 项目创建过程详解
2019/07/29 Python
python 实现在shell窗口中编写print不向屏幕输出
2020/02/19 Python
Django调用支付宝接口代码实例详解
2020/04/04 Python
css3简单练习实现遨游浏览器logo的绘制
2013/01/30 HTML / CSS
HTML实现代码雨源码及效果示例
2020/02/25 HTML / CSS
会计专业毕业生推荐信
2013/11/05 职场文书
保荐人的岗位职责
2013/11/19 职场文书
某同学的自我鉴定范文
2013/12/26 职场文书
房地产营销策划方案
2014/02/08 职场文书
大学生就业策划书范文
2014/04/04 职场文书
检讨书范文
2019/04/16 职场文书
如果用一句诗总结你的上半年,你会用哪句呢?
2019/07/16 职场文书
十大冰系宝可梦排名,颜值最高的阿罗拉九尾,第三使用率第一
2022/03/18 日漫