之前利用百度API实现过CSV文档的翻译,不过今天再找出代码修改后发现,好像不太支持了>_<…(之后再整理整理百度的)
so从网上搜了搜,打算利用有道翻译的API。(直接上代码,参考文章)

import urllib.request
import urllib.parse
import json
import docx
import os
import inspect
import re
from docx.shared import Pt
from docx.oxml.ns import qndef translate(path):'''翻译'''restr = '“(?:[^"])*”'# 获取文档对象doc = docx.Document(path)# 创建内存中的word文档对象new_doc = docx.Document()# 创建自定义字符样式(第一个参数为样式名, 第二个参数为样式类型, 1为段落样式, 2为字符样式, 3为表格样式)UserStyle2 = new_doc.styles.add_style('UserStyle2', 1)# 设置字体尺寸UserStyle2.font.size = Pt(12)# 设置段落样式为宋体UserStyle2.font.name = '宋体'UserStyle2._element.rPr.rFonts.set(qn('w:eastAsia'), '宋体')# 遍历每一段文本for para in doc.paragraphs:# 翻译trans = youdao_translate(para.text)    matchRet = re.findall(restr, trans)for r in matchRet:trans = trans.replace(r, '“' + r[1:-1] + '”')# 写入新文件new_doc.add_paragraph(para.text)new_doc.add_paragraph(trans, style = UserStyle2)return new_doc# 有道翻译方法
def youdao_translate(content):'''实现有道翻译的接口'''youdao_url = 'http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule'data = {}data['i']= contentdata['from'] = 'AUTO'data['to'] = 'AUTO'data['smartresult'] = 'dict'data['client'] = 'fanyideskweb'data['salt'] = '1525141473246'data['sign'] = '47ee728a4465ef98ac06510bf67f3023'data['doctype'] = 'json'data['version'] = '2.1'data['keyfrom'] = 'fanyi.web'data['action'] = 'FY_BY_CLICKBUTTION'data['typoResult'] = 'false'data = urllib.parse.urlencode(data).encode('utf-8')youdao_response = urllib.request.urlopen(youdao_url, data)youdao_html = youdao_response.read().decode('utf-8')target = json.loads(youdao_html)trans = target['translateResult']ret = ''line = ''for j in range(len(trans[0])):line = trans[0][j]['tgt']ret += linereturn retcur_dir = '\\'.join(os.path.abspath(inspect.getsourcefile(lambda:0)).split('\\')[:-1])   # 获取当前绝对路径的上层目录 linux中应用'/'split和join
file_path = os.path.join(cur_dir, 'XXX.docx')   # 获取文件路径
new_doc = translate(file_path)
new_file_path = os.path.join(cur_dir, 'XXX_trans.docx')
new_doc.save(new_file_path)

def translate()中的正则表达式&字体更换可详见文章。
路径设定可参考文章。

翻译效果因人而异,后续进行收尾性的校对工作,还是八错滴~

Python实现Word文档翻译相关推荐

  1. python操作word文档(python-docx)

    python操作word文档(python-docx) 1. 效果图 1.1 python-docx文档标题段落(等级.加粗.斜体.居中)效果图 1.2 python-docx字体(加粗.斜体.居中. ...

  2. python打开word并在前台显示_Python自动化办公之Word,全网最全看这一篇就够了

    作者:超级大洋葱806 https://tangxing.blog.csdn.net/article/details/108418066 环境安装 使用Python操作word大部分情况都是写操作,也 ...

  3. python处理表格数据-python读取word 中指定位置的表格及表格数据

    1.Word文档如下: 2.代码 # -*- coding: UTF-8 -*- from docx import Document def readSpecTable(filename, specT ...

  4. python入门教程2word-使用python操作word

    前言 最近工作中,需要将查询的一段时间的数据可视化,并导出为word格式.由于对word操作不熟悉,查阅了一下相关文档,这里简要记录一下如何使用python操作word. 说明 该代码记录了对word ...

  5. python入门教程2word-入门干货:Python操作Word文件经验分享

    原标题:入门干货:Python操作Word文件经验分享 导读:Microsoft Word在当前使用中是占有巨大优势的文字处理器,这使得Word专用的档案格式Word 文件(.docx)成为事实上最通 ...

  6. python读取word文档

    周末需要做一个统计word文档字数的问题,刚开始以为很简单,因为之前做过excel表格相关的任务,所以认为利用扩展模块应该比较简单. 通过搜索,确实搜到了一个python操作word的模块,pytho ...

  7. Python 操作Word文档插入图片和表格实例演示

    Python 操作Word文档插入图片和表格实例演示 效果图 实现过程 ① python-docx 库安装 ② word 文档插入图片演示 ③ word 文档插入表格演示 [ 文章推荐 ] Pytho ...

  8. python读取word文件并替换部分文字_python实现替换word中的关键文字(使用通配符)...

    环境:Python3.6 本文主要是通过win32com操作word,对word中进行常用的操作.本文以替换为例,讲解一下如何使用Python在word中使用"通配符模式"(类似于 ...

  9. python 读取 word 表格_python读取word表格

    python调用com,如何完成word表格操作 word中doc这个格式的文件是微软特有格式,微软没有向外公开任何的api接口文档,只能通过微软提供的OLE组件来提其COM接口,只要你的机器上安装了 ...

  10. python 读取word 题库_Python-docx 读取word.docx内容

    第一次写博客,也不知道要写点儿什么好,所以就把我在学习Python的过程中遇到的问题记录下来,以便之后查看,本人小白,写的不好,如有错误,还请大家批评指正! 中文编码问题总是让人头疼,想要用Pytho ...

最新文章

  1. Servlet业务逻辑封装的试探
  2. 基于 CODING 轻松搞定持续集成
  3. zk如何实现watch
  4. Redis持久化存储详解(一)
  5. MySQL自学笔记2--select的5个子句
  6. Android中如何使用命令行查看内嵌数据库SQLite3
  7. jquery easyui 1.4.1 验证时tooltip 的位置调整
  8. Sharding Sphere如何配置,把两表连接导致的笛卡尔集的效果去掉
  9. AppScan api登录接口 postman_如何通过Postman调用EDI系统的API?
  10. 【Linux分享】Linux常用命令+教程分享
  11. 计组之中央处理器:7、指令流水线基本概念性能指标、影响因素
  12. js模板引擎 之handlebars.js
  13. 使用DQL查询数据(重点)
  14. Chrome使用、插件、脚本
  15. 多媒体教学计算机遥控,多媒体教学系统使用说明
  16. JavaScript返回上一页后并刷新页面
  17. Java代码小demon(一)SpringBoot+二维码和条形码生成
  18. 海康录像机能用别的摄像头吗_海康录像机怎么添加网络摄像头,你会了吗?
  19. 基于matlab菌落影像分割方法,基于MATLAB的图像分割方法及应用-
  20. VS Code修改系统界面和编辑面板字体大小

热门文章

  1. ie 无人操作自动关闭_Win10系统下ie浏览器无响应白屏自动关闭如何修复
  2. 非线性声学回声消除技术
  3. 五笔字根表识别码图_五笔字根识别码学习
  4. 微信公众号开发之微信模板消息推送
  5. 复制文件或文件夹时出错_为什么对于小白来说,复制文件一个都会出错???...
  6. WEB程序设计-个人主页,项目编号600001
  7. 质性数据分析软件NVivo的代码
  8. natApp进行内网穿透-外网访问前端本地运行项目
  9. tomcat配置war包解压地址
  10. 计算机网络第七版第一章答案