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中给List添加元素的4种方法分享
Nov 28 Python
在Python上基于Markov链生成伪随机文本的教程
Apr 17 Python
举例讲解Python中装饰器的用法
Apr 27 Python
使用简单工厂模式来进行Python的设计模式编程
Mar 01 Python
用生成器来改写直接返回列表的函数方法
May 25 Python
使用tensorflow实现线性svm
Sep 07 Python
numpy concatenate数组拼接方法示例介绍
May 27 Python
OpenCV 模板匹配
Jul 10 Python
通过python改变图片特定区域的颜色详解
Jul 15 Python
python tqdm实现进度条的示例代码
Nov 10 Python
python 装饰器的基本使用
Jan 13 Python
Python Numpy之linspace用法说明
Apr 17 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查询搜索引擎排名位置的代码
2010/01/05 PHP
PHP header()函数常用方法总结
2014/04/11 PHP
destoon会员注册提示“数据校验失败(2)”解决方法
2014/06/21 PHP
PHP中模拟链表和链表的基本操作示例
2016/02/27 PHP
JAVASCRIPT车架号识别/验证函数代码 汽车车架号验证程序
2012/01/08 Javascript
javascript写的一个模拟阅读小说的程序
2014/04/04 Javascript
seaJs的模块定义和模块加载浅析
2014/06/06 Javascript
JavaScript 表单处理实现代码
2015/04/13 Javascript
简介JavaScript中search()方法的使用
2015/06/06 Javascript
javascript 闭包详解
2015/07/02 Javascript
详解从Node.js的child_process模块来学习父子进程之间的通信
2017/03/27 Javascript
Nodejs之TCP服务端与客户端聊天程序详解
2017/07/07 NodeJs
基于Vuex无法观察到值变化的解决方法
2018/03/01 Javascript
从零开始在NPM上发布一个Vue组件的方法步骤
2018/12/20 Javascript
深入理解Puppeteer的入门教程和实践
2019/03/05 Javascript
laravel实现中文和英语互相切换的例子
2019/09/30 Javascript
js实现全选和全不选
2020/07/28 Javascript
[01:01:22]VGJ.S vs OG 2018国际邀请赛淘汰赛BO3 第一场 8.22
2018/08/23 DOTA
[45:16]完美世界DOTA2联赛PWL S3 Magma vs Phoenix 第一场 12.12
2020/12/16 DOTA
Python使用pymysql小技巧
2017/06/04 Python
带你学习Python如何实现回归树模型
2020/07/16 Python
详解appium自动化测试工具(monitor、uiautomatorviewer)
2021/01/27 Python
HTML5标签与HTML4标签的区别示例介绍
2013/07/18 HTML / CSS
Dr. Martens马汀博士官网:马丁靴始祖品牌
2016/10/15 全球购物
欧舒丹加拿大官网:L’Occitane加拿大
2017/10/29 全球购物
Tommy Hilfiger美国官网:美国高端休闲领导品牌
2019/01/14 全球购物
详解如何解决使用JSON.stringify时遇到的循环引用问题
2021/03/23 Javascript
党员自我评价分享
2013/12/13 职场文书
车间班组长的职责
2013/12/13 职场文书
优秀应届本科生求职信
2014/07/19 职场文书
门卫岗位职责
2015/02/09 职场文书
费城故事观后感
2015/06/10 职场文书
普希金诗歌赏析(6首)
2019/08/22 职场文书
导游词之阆中古城
2019/12/23 职场文书
Python使用UDP实现720p视频传输的操作
2021/04/24 Python
Oracle数据库事务的开启与结束详解
2022/06/25 Oracle