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安装第三方库及常见问题处理方法汇总
Sep 13 Python
Python编程修改MP3文件名称的方法
Apr 19 Python
Python中生成Epoch的方法
Apr 26 Python
python实现决策树
Dec 21 Python
Flask框架WTForm表单用法示例
Jul 20 Python
Python socket模块实现的udp通信功能示例
Apr 10 Python
python操作kafka实践的示例代码
Jun 19 Python
解决Django no such table: django_session的问题
Apr 07 Python
新建文件时Pycharm中自动设置头部模板信息的方法
Apr 17 Python
如何基于windows实现python定时爬虫
May 01 Python
Python根据字典的值查询出对应的键的方法
Sep 30 Python
Python利用folium实现地图可视化
May 23 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中的str_repeat函数在JavaScript中的实现
2013/09/16 PHP
浅析PHP数据导出知识点
2018/02/17 PHP
PHP实现获取文件mime类型多种方法解析
2020/05/28 PHP
js判断屏幕分辨率的代码
2013/07/16 Javascript
JS判定是否原生方法
2013/07/22 Javascript
javascript实现鼠标移到Image上方时显示文字效果的方法
2015/08/07 Javascript
jQuery实现可关闭固定于底(顶)部的工具条菜单效果
2015/11/06 Javascript
javascript正则表达式总结
2016/02/29 Javascript
基于BootStrap Metronic开发框架经验小结【八】框架功能总体界面介绍
2016/05/12 Javascript
jquery实现垂直和水平菜单导航栏
2020/08/27 Javascript
几种二级联动案例(jQuery\Array\Ajax php)
2016/08/13 Javascript
Angular2 环境配置详细介绍
2016/09/21 Javascript
Javascript中字符串和数字的操作方法整理
2017/01/22 Javascript
9种改善AngularJS性能的方法
2017/11/28 Javascript
vue 动态改变静态图片以及请求网络图片的实现方法
2018/02/07 Javascript
Vue表单类的父子组件数据传递示例
2018/05/03 Javascript
详解vue微信网页授权最终解决方案
2019/06/16 Javascript
Node.js 实现远程桌面监控的方法步骤
2019/07/02 Javascript
javascript中可能用得到的全部的排序算法
2020/03/05 Javascript
[01:38]DOTA2 2015国际邀请赛中国区预选赛 Showopen
2015/06/01 DOTA
django 自定义用户user模型的三种方法
2014/11/18 Python
python虚拟环境virualenv的安装与使用
2016/12/18 Python
python版微信跳一跳游戏辅助
2018/01/11 Python
Python中pillow知识点学习
2018/04/30 Python
python面试题之列表声明实例分析
2019/07/08 Python
Python Django2 model 查询介绍(条件、范围、模糊查询)
2020/03/16 Python
HTML5 表单验证失败的提示语问题
2017/07/13 HTML / CSS
垃圾回收的优点和原理
2014/05/16 面试题
小学一年级评语大全
2014/04/22 职场文书
大学中国梦演讲稿
2014/04/23 职场文书
药剂专业个人求职信范文
2014/04/29 职场文书
环境科学专业求职信
2014/08/04 职场文书
行风评议整改报告
2014/11/06 职场文书
物流仓管员岗位职责
2015/04/01 职场文书
导游词之日本富士山
2020/01/06 职场文书
详细聊聊浏览器是如何看闭包的
2021/11/11 Javascript