首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >用python读取.doc文件

用python读取.doc文件
EN

Stack Overflow用户
提问于 2016-03-15 10:11:09
回答 6查看 136.1K关注 0票数 34

我得到了一个工作申请的测试,我的交易是读一些.doc文件。有没有人知道做这件事的图书馆?我从一段原始的python代码开始:

代码语言:javascript
复制
f = open('test.doc', 'r')
f.read()

但这不会返回友好的字符串,我需要将其转换为utf-8

编辑:我只想从这个文件中获取文本

EN

回答 6

Stack Overflow用户

发布于 2017-03-31 16:18:43

可以使用textract库。它既可以处理"doc“也可以处理"docx”

代码语言:javascript
复制
import textract
text = textract.process("path/to/file.extension")

您甚至可以使用'antiword‘(sudo apt-get install antiword),然后先将文档转换为docx,然后通过docx2txt读取。

代码语言:javascript
复制
antiword filename.doc > filename.docx

最终,textract在后端使用的是反单词。

票数 40
EN

Stack Overflow用户

发布于 2018-06-11 18:54:59

我也在尝试同样的做法,我找到了很多关于阅读.docx的信息,但关于.doc的信息要少得多;不管怎么说,我还是设法用下面的代码阅读了文本:

代码语言:javascript
复制
import win32com.client

word = win32com.client.Dispatch("Word.Application")
word.visible = False
wb = word.Documents.Open("myfile.doc")
doc = word.ActiveDocument
print(doc.Range().Text)
票数 23
EN

Stack Overflow用户

发布于 2017-12-26 14:32:54

前提条件:

安装antiword:sudo apt-get install antiword

安装docx:pip install docx

代码语言:javascript
复制
from subprocess import Popen, PIPE

from docx import opendocx, getdocumenttext
from cStringIO import StringIO
def document_to_text(filename, file_path):
    cmd = ['antiword', file_path]
    p = Popen(cmd, stdout=PIPE)
    stdout, stderr = p.communicate()
    return stdout.decode('ascii', 'ignore')

print document_to_text('your_file_name','your_file_path')

注意-新版本的python-docx删除了这个函数。确保通过pip安装docx,而不是新的python-docx

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36001482

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档