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实现apahce网站日志分析示例
Apr 02 Python
python使用socket向客户端发送数据的方法
Apr 29 Python
python 对dataframe下面的值进行大规模赋值方法
Jun 09 Python
python爬取网易云音乐评论
Nov 16 Python
python中退出多层循环的方法
Nov 27 Python
opencv与numpy的图像基本操作
Mar 08 Python
使用python进行波形及频谱绘制的方法
Jun 17 Python
简单了解python中的f.b.u.r函数
Nov 02 Python
基于keras输出中间层结果的2种实现方式
Jan 24 Python
TensorFlow Saver:保存和读取模型参数.ckpt实例
Feb 10 Python
pycharm专业版远程登录服务器的详细教程
Sep 15 Python
Python tensorflow卷积神经Inception V3网络结构
May 06 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/11/06 PHP
php中simplexml_load_file函数用法实例
2014/11/12 PHP
PHP简单实现无限级分类的方法
2016/05/13 PHP
Yii框架中sphinx索引配置方法解析
2016/10/18 PHP
php编程实现简单的网页版计算器功能示例
2017/04/26 PHP
对YUI扩展的Gird组件 Part-2
2007/03/10 Javascript
js 浮动层菜单收藏
2009/01/16 Javascript
网页中CDATA标记的说明
2010/09/12 Javascript
JS获取URL中的参数数据
2013/12/05 Javascript
JavaScript实现鼠标点击后层展开效果的方法
2015/05/13 Javascript
js实现精美的银灰色竖排折叠菜单
2015/05/16 Javascript
jQuery满意度星级评价插件特效代码分享
2015/08/19 Javascript
快速获取/设置iframe内对象元素的几种js实现方法
2016/05/20 Javascript
jQuery实现鼠标经过像翻页和描点链接效果
2016/08/08 Javascript
vue 2.x 中axios 封装的get 和post方法
2018/02/28 Javascript
如何在Angular应用中创建包含组件方法示例
2019/03/23 Javascript
微信小程序模板消息限制实现无限制主动推送的示例代码
2019/08/27 Javascript
three.js着色器材质的内置变量示例详解
2020/08/16 Javascript
python 将字符串转换成字典dict
2013/03/24 Python
Python中内置的日志模块logging用法详解
2016/07/12 Python
Python 列表理解及使用方法
2017/10/27 Python
Python实现PS滤镜特效之扇形变换效果示例
2018/01/26 Python
python线程join方法原理解析
2020/02/11 Python
css3 伪元素和伪类选择器详解
2014/09/04 HTML / CSS
Styleonme中文网:韩国高档人气品牌
2017/06/21 全球购物
Tory Burch德国官网:美国时尚生活品牌
2018/01/03 全球购物
Pandora西班牙官方商店:PandoraShop.es
2020/10/05 全球购物
在C中是否有模拟继承等面向对象程序设计特性的好方法
2012/05/22 面试题
物业保安主管岗位职责
2013/12/25 职场文书
病人写给医生的感谢信
2015/01/23 职场文书
工程项目合作意向书
2015/05/08 职场文书
2015年幼儿园安全工作总结
2015/05/12 职场文书
四大名著读书笔记
2015/06/25 职场文书
CSS完成视差滚动效果
2021/04/27 HTML / CSS
python3操作redis实现List列表实例
2021/08/04 Python
docker 制作mysql镜像并自动安装
2022/05/20 Servers