我得到了一份工作申請測試,我的交易是讀取一些.doc文件。有沒有人知道圖書館這樣做?我已經開始使用原始的Python代碼:使用python閱讀.doc文件
f = open('test.doc', 'r')
f.read()
但這並不返回一個友好的字符串我需要將其轉換爲UTF-8
編輯:我只是想擺脫這個文件中的文本
我得到了一份工作申請測試,我的交易是讀取一些.doc文件。有沒有人知道圖書館這樣做?我已經開始使用原始的Python代碼:使用python閱讀.doc文件
f = open('test.doc', 'r')
f.read()
但這並不返回一個友好的字符串我需要將其轉換爲UTF-8
編輯:我只是想擺脫這個文件中的文本
您可以使用python-docx2txt庫從Microsoft Word文檔中讀取文本。這是對python-docx庫的改進,另外還可以從鏈接,頁眉和頁腳中提取文本。它甚至可以提取圖像。
您可以通過運行:pip install docx2txt
進行安裝。
讓我們下載和閱讀here第一微軟文檔:
import docx2txt
my_text = docx2txt.process("test.docx")
print(my_text)
這裏是終端輸出的屏幕截圖,上面的代碼:
人們可以使用textract庫。 它照顧兩個「DOC」以及「DOCX」
import textract
text = textract.process("path/to/file.extension")
你甚至可以用「antiword」(命令和apt-get安裝antiword),然後轉換成DOC首先進入DOCX,然後通過docx2txt閱讀。
antiword filename.doc > filename.docx
最終,後端textract正在使用antiword。
Antiword似乎無法在windows-64位上工作,對此有何看法? –
@ bones.felipe Yaa! Antiword是一款基於Linux的命令行工具。 如果您在Windows 10上使用Anniversary Update,建議您在Windows上使用Ubuntu上的bash [1],並使用Windows上的Unix命令愉快地進行操作! [1] http://www.windowscentral.com/how-install-bash-shell-command-line-windows-10 –
我太遲了,但Antiword也有[Windows版本](http:// www -stud.rbi.informatik.uni-frankfurt.de/~markus/antiword/)。還有[catdoc](https://www.wagner.pp.ru/~vitus/software/catdoc/),但它有一個DOS版本,不支持長文件名。 –
先決條件:
安裝antiword:命令和apt-get安裝antiword
安裝的docx:PIP安裝DOCX
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')
公告 - 蟒蛇,DOCX的新版本中刪除此功能。確保pip安裝docx而不是新的python-docx
不幸的是只有.docx文件被docx2txt讀取我只有.doc文件 –
是的,它不適用於.doc文件。 – SVK