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 登录网站详解及实例
Apr 11 Python
机器学习10大经典算法详解
Dec 07 Python
windows下python安装pip图文教程
May 25 Python
Python图像处理实现两幅图像合成一幅图像的方法【测试可用】
Jan 04 Python
详解django+django-celery+celery的整合实战
Mar 19 Python
详解python读取和输出到txt
Mar 29 Python
Python assert关键字原理及实例解析
Dec 13 Python
python每5分钟从kafka中提取数据的例子
Dec 23 Python
Python2 与Python3的版本区别实例分析
Mar 30 Python
解决Python数据可视化中文部分显示方块问题
May 16 Python
通过代码实例了解Python3编程技巧
Oct 13 Python
Django项目在pycharm新建的步骤方法
Mar 02 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
2020年4月放送!《Princess Connect Re:Dive》制作组 & 角色声优公开!
2020/03/06 日漫
php.ini 中文版
2006/10/28 PHP
php实现的美国50个州选择列表实例
2015/04/20 PHP
php实现的简易扫雷游戏实例
2015/07/09 PHP
PHP递归遍历多维数组实现无限分类的方法
2016/05/06 PHP
PHP利用超级全局变量$_GET来接收表单数据的实例
2016/11/05 PHP
yii 2.0中表单小部件的使用方法示例
2017/05/23 PHP
PHP如何搭建百度Ueditor富文本编辑器
2018/09/21 PHP
jQuery学习4 浏览器的事件模型
2010/02/07 Javascript
php显示当前文件所在的文件以及文件夹所有文件以树形展开
2013/12/13 Javascript
js数值和和字符串进行转换时可以对不同进制进行操作
2014/03/05 Javascript
jQuery通过Ajax返回JSON数据
2015/04/28 Javascript
jquery validate demo 基础
2015/10/29 Javascript
JS实现多级菜单中当前菜单不随页面跳转样式而发生变化
2017/05/30 Javascript
react native基于FlatList下拉刷新上拉加载实现代码示例
2018/09/30 Javascript
JavaScript对象拷贝与赋值操作实例分析
2018/12/10 Javascript
手把手教您实现react异步加载高阶组件
2020/04/07 Javascript
Node.js中的异步生成器与异步迭代详解
2021/01/31 Javascript
使用Python监控文件内容变化代码实例
2018/06/04 Python
Python实现将通信达.day文件读取为DataFrame
2018/12/22 Python
使用python爬取抖音视频列表信息
2019/07/15 Python
python新式类和经典类的区别实例分析
2020/03/23 Python
python绘制汉诺塔
2021/03/01 Python
后勤主管岗位职责
2014/03/01 职场文书
入党积极分子学习两会心得体会范文
2014/03/17 职场文书
法律顾问服务方案
2014/05/15 职场文书
学校党的群众路线教育实践活动总结报告
2014/07/03 职场文书
终止劳动合同协议书
2014/10/05 职场文书
2014年维修电工工作总结
2014/11/20 职场文书
2014年信息技术工作总结
2014/12/16 职场文书
首席执行官观后感
2015/06/03 职场文书
解除合同协议书范本
2016/03/21 职场文书
私人贷款担保书该怎么写呢?
2019/07/02 职场文书
有关花店创业的计划书模板
2019/08/27 职场文书
MySQL数据库查询进阶之多表查询详解
2022/04/08 MySQL
在ubuntu下安装go开发环境的全过程
2022/08/05 Golang