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 相关文章推荐
windows下安装python paramiko模块的代码
Feb 10 Python
Python实现读取json文件到excel表
Nov 18 Python
python微信跳一跳系列之色块轮廓定位棋盘
Feb 26 Python
Python实现多线程的两种方式分析
Aug 29 Python
使用python将mysql数据库的数据转换为json数据的方法
Jul 01 Python
python实现两张图片拼接为一张图片并保存
Jul 16 Python
numpy np.newaxis 的实用分享
Nov 30 Python
使用Python实现Wake On Lan远程开机功能
Jan 22 Python
python数据预处理 :数据共线性处理详解
Feb 24 Python
python实现程序重启和系统重启方式
Apr 16 Python
Python3以GitHub为例来实现模拟登录和爬取的实例讲解
Jul 30 Python
Python接口自动化之文件上传/下载接口详解
Apr 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语言构造器介绍
2013/07/08 PHP
PHP 函数call_user_func和call_user_func_array用法详解
2014/03/02 PHP
Yii2创建多界面主题(Theme)的方法
2016/10/08 PHP
Thinkphp5 微信公众号token验证不成功的原因及解决方法
2017/11/12 PHP
PHP实现模拟http请求的方法分析
2017/12/20 PHP
PHP 实现 WebSocket 协议原理与应用详解
2020/04/22 PHP
广告代码静态化js通用函数
2007/05/09 Javascript
深入分析js中的constructor和prototype
2012/04/07 Javascript
javascript的offset、client、scroll使用方法详解
2012/12/25 Javascript
没有document.getElementByName方法
2013/08/19 Javascript
JS将表单导出成EXCEL的实例代码
2013/11/11 Javascript
JS给超链接加确认对话框的方法
2015/02/24 Javascript
基于js实现微信发送好友如何分享到朋友圈、微博
2015/11/30 Javascript
jQuery EasyUI封装简化操作
2016/09/18 Javascript
浅谈Vuex注入Vue生命周期的过程
2019/05/20 Javascript
[02:40]DOTA2殁境神蚀者 英雄基础教程
2013/11/26 DOTA
利用Django框架中select_related和prefetch_related函数对数据库查询优化
2015/04/01 Python
python PyTorch预训练示例
2018/02/11 Python
人生苦短我用python python如何快速入门?
2018/03/12 Python
python获取微信小程序手机号并绑定遇到的坑
2018/11/19 Python
详解Python字典的操作
2019/03/04 Python
python print出共轭复数的方法详解
2019/06/25 Python
Python pandas.DataFrame 找出有空值的行
2019/09/09 Python
安装Pycharm2019以及配置anconda教程的方法步骤
2019/11/11 Python
Python操作MySQL数据库的示例代码
2020/07/13 Python
Conforama西班牙:您的家具、装饰和电器商店
2020/02/21 全球购物
linux面试题参考答案(8)
2016/04/19 面试题
学生社团文化节开幕式主持词
2014/03/28 职场文书
大学生入党推荐书范文
2014/05/17 职场文书
股东授权委托书范本
2014/09/13 职场文书
2014年社区国庆节活动方案
2014/09/16 职场文书
户籍证明模板
2014/09/28 职场文书
务虚会发言材料
2014/12/25 职场文书
鸦片战争观后感
2015/06/09 职场文书
运动会开幕式新闻稿
2015/07/17 职场文书
用Python实现一个打字速度测试工具来测试你的手速
2021/05/28 Python