Python实现Word文档翻译
之前利用百度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文档翻译相关推荐
- python操作word文档(python-docx)
python操作word文档(python-docx) 1. 效果图 1.1 python-docx文档标题段落(等级.加粗.斜体.居中)效果图 1.2 python-docx字体(加粗.斜体.居中. ...
- python打开word并在前台显示_Python自动化办公之Word,全网最全看这一篇就够了
作者:超级大洋葱806 https://tangxing.blog.csdn.net/article/details/108418066 环境安装 使用Python操作word大部分情况都是写操作,也 ...
- python处理表格数据-python读取word 中指定位置的表格及表格数据
1.Word文档如下: 2.代码 # -*- coding: UTF-8 -*- from docx import Document def readSpecTable(filename, specT ...
- python入门教程2word-使用python操作word
前言 最近工作中,需要将查询的一段时间的数据可视化,并导出为word格式.由于对word操作不熟悉,查阅了一下相关文档,这里简要记录一下如何使用python操作word. 说明 该代码记录了对word ...
- python入门教程2word-入门干货:Python操作Word文件经验分享
原标题:入门干货:Python操作Word文件经验分享 导读:Microsoft Word在当前使用中是占有巨大优势的文字处理器,这使得Word专用的档案格式Word 文件(.docx)成为事实上最通 ...
- python读取word文档
周末需要做一个统计word文档字数的问题,刚开始以为很简单,因为之前做过excel表格相关的任务,所以认为利用扩展模块应该比较简单. 通过搜索,确实搜到了一个python操作word的模块,pytho ...
- Python 操作Word文档插入图片和表格实例演示
Python 操作Word文档插入图片和表格实例演示 效果图 实现过程 ① python-docx 库安装 ② word 文档插入图片演示 ③ word 文档插入表格演示 [ 文章推荐 ] Pytho ...
- python读取word文件并替换部分文字_python实现替换word中的关键文字(使用通配符)...
环境:Python3.6 本文主要是通过win32com操作word,对word中进行常用的操作.本文以替换为例,讲解一下如何使用Python在word中使用"通配符模式"(类似于 ...
- python 读取 word 表格_python读取word表格
python调用com,如何完成word表格操作 word中doc这个格式的文件是微软特有格式,微软没有向外公开任何的api接口文档,只能通过微软提供的OLE组件来提其COM接口,只要你的机器上安装了 ...
- python 读取word 题库_Python-docx 读取word.docx内容
第一次写博客,也不知道要写点儿什么好,所以就把我在学习Python的过程中遇到的问题记录下来,以便之后查看,本人小白,写的不好,如有错误,还请大家批评指正! 中文编码问题总是让人头疼,想要用Pytho ...
最新文章
- Servlet业务逻辑封装的试探
- 基于 CODING 轻松搞定持续集成
- zk如何实现watch
- Redis持久化存储详解(一)
- MySQL自学笔记2--select的5个子句
- Android中如何使用命令行查看内嵌数据库SQLite3
- jquery easyui 1.4.1 验证时tooltip 的位置调整
- Sharding Sphere如何配置,把两表连接导致的笛卡尔集的效果去掉
- AppScan api登录接口 postman_如何通过Postman调用EDI系统的API?
- 【Linux分享】Linux常用命令+教程分享
- 计组之中央处理器:7、指令流水线基本概念性能指标、影响因素
- js模板引擎 之handlebars.js
- 使用DQL查询数据(重点)
- Chrome使用、插件、脚本
- 多媒体教学计算机遥控,多媒体教学系统使用说明
- JavaScript返回上一页后并刷新页面
- Java代码小demon(一)SpringBoot+二维码和条形码生成
- 海康录像机能用别的摄像头吗_海康录像机怎么添加网络摄像头,你会了吗?
- 基于matlab菌落影像分割方法,基于MATLAB的图像分割方法及应用-
- VS Code修改系统界面和编辑面板字体大小