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 相关文章推荐
Django实现的自定义访问日志模块示例
Jun 23 Python
Python中实现最小二乘法思路及实现代码
Jan 04 Python
详解Python 协程的详细用法使用和例子
Jun 15 Python
flask入门之文件上传与邮件发送示例
Jul 18 Python
python判断文件是否存在,不存在就创建一个的实例
Feb 18 Python
Pytorch根据layers的name冻结训练方式
Jan 06 Python
mac 上配置Pycharm连接远程服务器并实现使用远程服务器Python解释器的方法
Mar 19 Python
python 实现两个线程交替执行
May 02 Python
python算的上脚本语言吗
Jun 22 Python
浅谈keras中的keras.utils.to_categorical用法
Jul 02 Python
Python实现加密的RAR文件解压的方法(密码已知)
Sep 11 Python
OpenCV-Python实现图像平滑处理操作
Jun 08 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
全国FM电台频率大全 - 26 西藏自治区
2020/03/11 无线电
php使用pdo连接并查询sql数据库的方法
2014/12/24 PHP
php实现的Curl封装类Curl.class.php用法实例分析
2015/09/25 PHP
PHP实现的简单适配器模式示例
2017/06/22 PHP
简洁短小的 JavaScript IE 浏览器判定代码
2010/03/21 Javascript
jQuery基础知识filter()和find()实例说明
2010/07/06 Javascript
JS动态添加与删除select中的Option对象(示例代码)
2013/12/25 Javascript
JS 操作Array数组的方法及属性实例解析
2014/01/08 Javascript
Jquery实现上下移动和排序代码
2016/10/17 Javascript
前端开发必知的15个jQuery小技巧
2017/01/22 Javascript
Angular指令之restict匹配模式的详解
2017/07/27 Javascript
es6 字符串String的扩展(实例讲解)
2017/08/03 Javascript
node.js学习之事件模块Events的使用示例
2017/09/28 Javascript
使用layui+ajax实现简单的菜单权限管理及排序的方法
2019/09/10 Javascript
layui之数据表格--与后台交互获取数据的方法
2019/09/29 Javascript
100行代码实现vue表单校验功能(小白自编)
2019/11/19 Javascript
[03:28]2014DOTA2国际邀请赛 走近EG战队天才中单Arteezy
2014/07/12 DOTA
收集的几个Python小技巧分享
2014/11/22 Python
Python中isnumeric()方法的使用简介
2015/05/19 Python
Python实现读写INI配置文件的方法示例
2018/06/09 Python
Pycharm2017版本设置启动时默认自动打开项目的方法
2018/10/29 Python
由面试题加深对Django的认识理解
2019/07/19 Python
Python实现某论坛自动签到功能
2019/08/20 Python
Lookfantastic香港官网:英国知名美妆购物网站
2018/06/19 全球购物
Ted Baker美国官网:英国时尚品牌
2018/10/29 全球购物
教育科学研究生自荐信
2013/10/09 职场文书
超市营业员岗位职责
2013/12/20 职场文书
就业协议书样本
2014/08/20 职场文书
2014年班组长工作总结
2014/11/20 职场文书
毕业设计论文评语
2014/12/31 职场文书
综合素质评价个性与发展自我评价
2015/03/06 职场文书
暗恋桃花源观后感
2015/06/12 职场文书
初中班级口号霸气押韵
2015/12/24 职场文书
数据库连接池
2021/04/06 MySQL
Java 将PPT幻灯片转为HTML文件的实现思路
2021/06/11 Java/Android
SpringBoot集成Redis的思路详解
2021/10/16 Redis