2009-06-17 6 views
3

Wie würden Sie ein Microsoft OLE compound document mit Python analysieren?OLE Compound Dokumente in Python

Bearbeiten: Entschuldigung, ich habe vergessen zu sagen, dass ich auch Unterstützung schreiben muss. Kurz gesagt, ich habe eine OLE Compound-Datei, die ich lesen, ändern und zurückschreiben muss (es ist eine Datei gemacht mit einer CAD-Anwendung)

+0

Ich habe das gleiche Problem. OleFileIO_PL ist eine gute Möglichkeit zu lesen, unterstützt jedoch nicht das Schreiben. Das Modul ist jedoch in Python geschrieben und die Quelle ist online, so dass Sie möglicherweise versuchen könnten, eine schreibbare Version zu erstellen. Dann gibt es auch andere Pakete. –

Antwort

3

gefunden nur OleFileIO_PL, aber es spielt keine Schreibunterstützung haben ..:/

Edit: Sieht aus wie es einen Weg gibt (wenn auch nur für Windows), die zu schreiben unterstützt .. Die pywin32 Erweiterungen (StgOpenStorage Funktion und verwandte)

+0

Weitere Hinweise zur Verwendung der nativen Win32-Aufrufe finden Sie unter http://www.endurasoft.com/vcd/ststo.htm – JGurtz

+0

Vielen Dank :) [filler] – Joril

+0

Ja, ich wollte Windows als native API für die Verwaltung von Speicherdokumenten verwenden . – chaz

2

Eine Alternative: Das xlrd-Paket hat einen Leser. Das Paket xlwt (eine Verzweigung von pyExcelerator) verfügt über einen Writer. Sie verarbeiten munter Dateigrößen von 100 MB. Die Pakete sind seit ca. 4 Jahren weit verbreitet. Die zusammengesetzten Dokumentmodule zielen darauf ab, "Workbook" -Streams so effizient wie möglich in Excel-.xls-Dateien ein- und aus diesen herauszulösen, sind jedoch allgemein verwendbar. Im Gegensatz zu OleFileIO_PL bieten sie keinen Zugriff auf die Interna von Property-Streams.

http://pypi.python.org/pypi/xlrd 
http://pypi.python.org/pypi/xlwt 

Wenn Sie sich entscheiden, sie zu benutzen und Hilfe benötigen, in diesem Forum fragen:

http://groups.google.com/group/python-excel

+0

Könnten Sie ein Beispiel zum Lesen und Schreiben eines beliebigen Streams aus einer OLE2-Datei angeben? – molnarg