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使用PIL模块实现给图片打水印的方法
May 22 Python
python使用psutil模块获取系统状态
Aug 27 Python
利用Python中SocketServer 实现客户端与服务器间非阻塞通信
Dec 15 Python
python高效过滤出文件夹下指定文件名结尾的文件实例
Oct 21 Python
解决在pycharm中显示额外的 figure 窗口问题
Jan 15 Python
python实现年会抽奖程序
Jan 22 Python
Python中psutil的介绍与用法
May 02 Python
Pyqt5 实现跳转界面并关闭当前界面的方法
Jun 19 Python
Python smtp邮件发送模块用法教程
Jun 15 Python
基于matplotlib中ion()和ioff()的使用详解
Jun 16 Python
python爬虫---requests库的用法详解
Sep 28 Python
Pytorch中的学习率衰减及其用法详解
Jun 05 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的ob_start();控制您的浏览器cache!
2007/02/14 PHP
PHP实现Socket服务器的代码
2008/04/03 PHP
phpmailer在服务器上不能正常发送邮件的解决办法
2014/07/08 PHP
php实用代码片段整理
2016/11/12 PHP
PHP版微信小店接口开发实例
2016/11/12 PHP
PHP正则验证字符串是否为数字的两种方法并附常用正则
2019/02/27 PHP
phpfpm的作用和用法
2019/10/10 PHP
srcElement表格样式
2006/09/03 Javascript
一个可以显示阴历的JS代码
2007/03/05 Javascript
js文字滚动停顿效果代码
2008/06/28 Javascript
jquery 弹出登录窗口实现代码
2009/12/24 Javascript
jQuery 性能优化手册 推荐
2010/02/23 Javascript
Ext.get() 和 Ext.query()组合使用实现最灵活的取元素方式
2011/09/26 Javascript
jQuery实现密保互斥问题解决方案
2013/08/16 Javascript
Javascript 按位与赋值运算符 (&=)使用介绍
2014/02/04 Javascript
DIV始终居中的js代码
2014/02/17 Javascript
js如何调用qq互联api实现第三方登录
2014/03/28 Javascript
javascript事件委托的方式绑定详解
2015/06/10 Javascript
Immutable 在 JavaScript 中的应用
2016/05/02 Javascript
详解基于Bootstrap+angular的一个豆瓣电影app
2017/06/26 Javascript
微信小程序事件 bindtap bindinput代码实例
2019/08/26 Javascript
让mocha支持ES6模块的方法实现
2020/01/14 Javascript
微信小程序实现加入购物车滑动轨迹
2020/11/18 Javascript
[04:21]狐狸妈带你到现场 DOTA2 TI中国区预选赛线下赛路线指引
2014/05/22 DOTA
利用一个简单的例子窥探CPython内核的运行机制
2015/03/30 Python
Python multiprocessing多进程原理与应用示例
2019/02/28 Python
Django 中间键和上下文处理器的使用
2019/03/17 Python
Python3安装psycopy2以及遇到问题解决方法
2019/07/03 Python
Windows平台Python编程必会模块之pywin32介绍
2019/10/01 Python
python使用yaml 管理selenium元素的示例
2020/12/01 Python
利用promise及参数解构封装ajax请求的方法
2021/03/24 Javascript
简历中个人求职的自我评价模板
2013/11/29 职场文书
幼师辞职信范文
2015/02/27 职场文书
毕业论文致谢信
2015/05/14 职场文书
少年犯观后感
2015/06/11 职场文书
再也不用花钱买漫画!Python爬取某漫画的脚本及源码
2021/06/09 Python