python文档自动翻译

python文档自动翻译

关键方法

提取文档内容

读取TXT文档

txt文档的读取很简单,直接用python自带的open()方法就好,代码如下所示:

# 读取TXT文档
def read_txt(path):
    '''实现TXT文档的读取,一次将内容全部取出'''
    content = ''
    with open(path) as f:
        content = f.read()
    return content
# 也可以用readline()读取每一行
读取Word文档

读取Word文档也比较简单,导入第三方库python-docx,安装指令为pip install python-docx,实例代码如下:

import docx    # 安装指令:pip install python-docx

def translate(self):
    '''翻译'''

    # 获取文档对象
    doc = docx.Document(self.fullName)

    # 创建内存中的word文档对象
    new_doc = docx.Document()

    # 遍历每一段文本
    for para in doc.paragraphs:
        # 翻译
        trans = baidu_translate(para.text)           
        # 写入新文件
        new_doc.add_paragraph(para.text)
        new_doc.add_paragraph(trans)

    # 保存到本地文件
    new_doc.save(self.new_fullPath)
读取PDF文档

读取PDF文档同样需要安装第三方库,主要有PyPDF2和pdfminer,这两个库我都有去了解,算是各有特点吧。
PyPDF2使用相对简单,但只支持英文,对中文支持不太友好;相反pdfminer使用相对而言要复杂点,仅仅是相对而言,其支持多种语言,图表、图片等,功能较强大。这两种方式我在代码中均有实现,其实例代码如下:
PyPDF2

# 安装指令:pip install pypdf2
from PyPDF2.pdf import PdfFileReader

def translate(self):
    '''读取pdf内容,并翻译,写入txt文件'''
    f = open(self.fullPath,'rb')
    pdf = PdfFileReader(f)

    for i in range(0,pdf.getNumPages()):
        extractedText = pdf.getPage(i).extractText()
        content = extractedText.split('\n')  
        content = self.removeBlankFromList(content)  

        # 拼接之后的文本,如果单词间歇超过一个空格的,认为是需要换行处理的
        content_list = self.enter_symbol(content)

        for line in content_list:
            trans = baidu_translate(line)
            self.write(line + '\n')
            self.write(trans)

    f.close()
    Logger().write(self.fileName + '翻译完成,新文档:' 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值