2010-02-14 63 views
0

當您嘗試打開MS Word文檔或者大多數Windows文件格式時,您會看到下面給出的亂碼,由實際文本間歇性地斷開。我需要提取進入的文本並且要忽略亂碼 - 這就像下面給出的那樣。我如何只提取重要的文本,並忽略其餘的東西。請指教。如何使用Python解析Word文檔中的文本?

這裏的Word文檔的open("sample.doc",r").read()樣本。由於

00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00In an Interesting news,his is the first time we polled Indian channel community for their preferred memory supplier. Transcend came a close second, was seen to be more popular among class A city based resellers, was also the most recalled memory brand among customers according to resellers. However Transcend channels complained of parallel imports and constant unavailability of the products in grey x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x 

回答

3

該工具似乎是最可行的,特別是如果你需要一個全python解決方案是OleFileIO

+0

以上是.doc文件。.DOCX文件只是簡單地壓縮XML文件。 – 2010-02-14 16:39:56

0

沒有通用的,爲什麼來提取每個文件格式 信息。 您需要了解格式才能知道 如何提取信息。

只是想指出第一。所以你應該尋找的是圖書館和軟件,可以轉換/提取你想要的信息。正如Ofir MicroSoft所提到的那樣,它們爲其格式提供了相應的工具。

但是,如果您無法做到這一點,並希望抓住文件中可見文本的機會,並認爲讀取有趣,則可以進行正常讀取並查找將構建文本的字節序列。然後出現這個問題,我應該在尋找文本時支持哪些語言/字符集。它是多字節文本嗎?

最簡單的開始是通過數據環和尋找的[A-ZA-Z0-9_-]查找文本序列。但是單詞可能是多字節的。所以你應該掃描雙字節作爲一個字符。

注意:一些新的格式,如開放式辦公和DOCX是壓縮容器中的多個文件。因此,您需要首先解壓文件,然後在您查找的文本之後掃描XML文檔。

0

Word文檔是一種壓縮格式。你需要首先解壓它才能得到真正的數據(嘗試打開一個像winrar這樣的程序中的doc文件,你會看到它包含多個文件)

它甚至似乎是XML,所以閱讀格式不應該是辛苦,雖然我不知道你是否得到所有的數據這種方式。

0

我有一個類似的問題,需要查詢數百個Word文檔,我轉換Word文件爲文本文件,並使用普通的文本解析工具。效果很好。