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发送SMTP邮件的教程
Apr 29 Python
以一个投票程序的实例来讲解Python的Django框架使用
Feb 18 Python
python+selenium实现京东自动登录及秒杀功能
Nov 18 Python
pandas DataFrame 根据多列的值做判断,生成新的列值实例
May 18 Python
将Pytorch模型从CPU转换成GPU的实现方法
Aug 19 Python
python3 求约数的实例
Dec 05 Python
Tensorflow轻松实现XOR运算的方式
Feb 03 Python
Python读取VOC中的xml目标框实例
Mar 10 Python
django自定义非主键自增字段类型详解(auto increment field)
Mar 30 Python
Python如何实现爬取B站视频
May 20 Python
opencv-python的RGB与BGR互转方式
Jun 02 Python
python 模拟登陆github的示例
Dec 04 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
[EPIC] Larva vs Flash ZvT @ Crossing Field [2017-10-09]
2020/03/17 星际争霸
PHP程序61条面向对象分析设计的经验小结
2008/11/12 PHP
php addslashes和mysql_real_escape_string
2010/01/24 PHP
利用Fix Rss Feeds插件修复WordPress的Feed显示错误
2015/12/19 PHP
基于PHP技术开发客服工单系统
2016/01/06 PHP
详细解读php的命名空间(二)
2018/02/21 PHP
PHP实现的多维数组去重操作示例
2018/07/21 PHP
jQuery之尺寸调整组件的深入解析
2013/06/19 Javascript
SwfUpload在IE10上不出现上传按钮的解决方法
2013/06/25 Javascript
使用jQuery实现input数值增量和减量的方法
2015/01/24 Javascript
浅析Bootstrap表格的使用
2016/06/23 Javascript
React实践之Tree组件的使用方法
2017/09/30 Javascript
深入浅析javascript继承体系
2017/10/23 Javascript
BootStrap模态框闪退问题实例代码详解
2018/12/10 Javascript
JS/HTML5游戏常用算法之碰撞检测 包围盒检测算法详解【圆形情况】
2018/12/13 Javascript
[01:03:50]DOTA2-DPC中国联赛 正赛 CDEC vs DLG BO3 第二场 2月7日
2021/03/11 DOTA
python实现爬虫下载美女图片
2015/07/14 Python
菜鸟使用python实现正则检测密码合法性
2016/01/05 Python
python装饰器与递归算法详解
2016/02/18 Python
python实战教程之自动扫雷
2018/07/13 Python
Python命名空间的本质和加载顺序
2018/12/17 Python
详解python-图像处理(映射变换)
2019/03/22 Python
用Pelican搭建一个极简静态博客系统过程解析
2019/08/22 Python
使用Python生成200个激活码的实现方法
2019/11/22 Python
pytorch 常用函数 max ,eq说明
2020/06/28 Python
html5 sessionStorage会话存储_动力节点Java学院整理
2017/07/06 HTML / CSS
html5设计原理(推荐收藏)
2014/05/17 HTML / CSS
小女主人连衣裙:Little Mistress
2017/07/10 全球购物
如何写出高质量、高性能的MySQL查询
2014/11/17 面试题
大学旷课检讨书
2014/01/28 职场文书
医院总经理岗位职责
2014/02/04 职场文书
会计专业导师推荐信
2014/03/08 职场文书
职务任命书范本
2014/06/05 职场文书
2014年社区民政工作总结
2014/12/02 职场文书
邀请函样本
2015/02/02 职场文书
简单总结SpringMVC拦截器的使用方法
2021/06/28 Java/Android