2009-05-26 19 views
1

可能性の重複:
Reading/Writing MS Word files in PythonPythonのMS Wordの

は、私は(requisteプロのように - 合理ローズ) - 要件管理システムに探していますし、MSを通読する必要があります。 WindowsまたはApple OS環境の特定のタグを検索するWord文書。これには既知のフレームワークがありますか(私は見つけられませんでした)、あるいは提案されたアプローチはありますか?

これは一回限りの読書ではないので、更新があるたびに改訂し、要件固有の領域でCRUDを実行します。

+0

が遊んでください - 私が開いて、単語のdoc 輸入win32com.client 語= win32com.client.Dispatch( 'Word.Application') ドキュメントの内容を印刷することができました= word.Documents.Open( 'C:\\ test.docを') wordinfo = doc.Content() 印刷wordinfo doc.Close 右方向 – meade

答えて

4

まず、ネイティブWord(.doc)形式から取り出します。

  • 「XML名前を付けて保存」を行うと、ユーザーがそのファイルの代わり.docファイルで作業を主張。彼らはほとんど違いがないことを知っている - ファイルが大きいことを除いて。

    lxmlまたはelement treeを使用して、XMLを解析し、見出し、セクション、段落、およびリストを検索します。

  • 分析を行う前に「HTMLで保存」を行うこともできます。これは、XMLバージョンと同様に機能します。 HTMLバージョンはユーザーにとっては簡単ではありませんが、分析の前にこれを実行してください。

    Beautiful Soupを使用して、HTMLを解析し、見出し、セクション、段落、およびリストを検索します。

解析構造(XMLまたはHTML)を取得したら、特定のタグを探してドキュメントを分析できます。

0

現金がある場合はAspose.WordのJava APIを購入できます。それを使用すると、プログラム的に任意のWord文書

+0

における一つのステップは、Javaを使用する用意がある場合は、docx4jオプションでもあります。 – JasonPlutext

0

にアクセスして操作することができます私はあなたがアクセスWordをprogrammicallyするためのVBScript(VBAマクロ)とOLEを使用する必要があり、これはPythonの質問です知っているが、Windows上...

Examples | How-tos |あなたはその場で文書を修正するか、自動化された「名前を付けて保存」を実行するのいずれかの選択肢を持っているVBAでOffice 2008

Article

のために古いバージョンのVBAを使用すると、AppleScriptのMacOSXの上Automating Word using OLE

より扱いやすいフォーマットでデータを取得することができます(ただし、HTMLのエクスポートは非​​常に難しいと警告されます)。

vbscriptが嫌な場合でも、このためにサードパーティのライブラリ/製品から遠ざけることを強くおすすめします。書式はあまりにも複雑で、文書化されておらず、正確な外部処理のために矛盾しています。 StarOffice/OpenOfficeはこれを証明しています。彼らは何年も努力し続けてきましたが、.docxだけでなく、正確な.doc解析もまだありませんでした。はい、それは一般的には機能しますが、Word以外でプログラムを修正しようとすると、ドキュメントをマングリングするという定量的なリスクがあります。 os.systemを使ってPythonからVBscriptを呼び出すことができるはずです。私は通訳がwscript.exeだと思いますが、私にはそれを抱かないでください。これはうまくいくかもしれません:

os.system('start script.vb') 
+0

DOCXは*実際の* XMLに近いので簡単でしょうか? 2007年以前の「MS」XMLはカウントされませんでした。それはまた、 "オープンスタンダード"です! ;) –

+0

6000ページの文書に含まれるオープンスタンダードで、下位互換性のために「バイナリブロブ」を含めることができます。信頼性の高い、正確なサードパーティのサポートは、私が考えている間になるでしょう。 – SpliFF

2

Word文書を読むためにopenoffice.orgの機能を構築することができます。 Python-UNOブリッジでは、Pythonスクリプト言語の標準OpenOffice.org APIを使用できます。 Python-UNOを使用し、openofficeの関連部分をあなたのマシンに置いておくと、ほとんどのWord文書を読むのは簡単です。

2

Visual Studio Tools for Office (VSTO)を使用すると、任意の.NET言語からWordをスクリプトすることができます。 How to: Search for Text in Documentsの例では、C#と​​3210のコードが表示されていますが、IronPythonでも同じ.NETのメソッドを呼び出すことができます。

IronPython(Mac対応ではありません)を使用する準備ができている場合は、Wordのドキュメントを検索するWindows固有のソリューションになる可能性があります。

2

Windows上にWordがインストールされていると仮定すると、COMを使用してPython内からWordを制御できます - Python for win32を参照してください。LinuxではOpenOfficeでも同じことができます。

また、win32またはLinux用のWord用の文字列抽出プログラムがたくさんあるので、通常のpython正規表現ツールを使用できます。

この質問extracting text from MS word files in python