Wyciąganie danych z MS Word za pomocą pywin32

Używam Pythona 3.3 w systemie Windows i muszę wyciągać ciągi z dokumentów Worda. Szukałem daleko od siebie przez około tydzień najlepszej metody, aby to zrobić. Początkowo próbowałem zapisać pliki .docx jako .txt i analizować za pomocą RE, ale miałem pewne problemy z formatowaniem ukrytych znaków - korzystałem ze skryptu, aby otworzyć .docx i zapisać jako .txt. Zastanawiam się, czy zrobiłem odpowiedni plik> SaveAs> .txt, czy usunę nieparzyste formatowanie, a potem będę mógł poprawnie analizować? Nie wiem, ale zrezygnowałem z tej metody.

Próbowałem użyćmoduł docx ale powiedziano mi, że nie jest kompatybilny z pythonem 3.3. Pozostało mi więc używać pywin32 i COM. Użyłem tego z powodzeniem w programie Excel, aby uzyskać potrzebne dane, ale mam problem z programem Word, ponieważ istnieje znacznie mniej dokumentacji iczytanie modelu obiektu na stronie Microsoft jest ponad moją głową.

Oto co mam do tej pory otworzyć dokument (y):

import win32com.client as win32
import glob, os

word = win32.gencache.EnsureDispatch('Word.Application')
word.Visible = True

for infile in glob.glob(os.path.join(r'mypath', '*.docx')):
    print(infile)
    doc = word.Documents.Open(infile)

W tym momencie mogę zrobić coś takiego

print(doc.Content.Text) 

I zobacz zawartość plików, ale nadal wygląda na to, że jest tam jakieś dziwne formatowanie i nie mam pojęcia, jak właściwie analizować dane, aby pobrać potrzebne dane. Mogę stworzyć RE, które z powodzeniem znajdą ciągi, których szukam, po prostu nie wiem, jak je zaimplementować w programie za pomocą COM.

Kod, który do tej pory posiadałem, znajdował się głównie w Google. Nie sądzę, żeby to było takie trudne, po prostu czytanie w modelu obiektu na stronie Microsoftu jest jak czytanie języka obcego. Każda pomoc jest DUŻO doceniana. Dziękuję Ci.

Edytuj: kod, którego używałem do zapisywania plików z docx do txt:

for path, dirs, files in os.walk(r'mypath'):
    for doc in [os.path.abspath(os.path.join(path, filename)) for filename in files if fnmatch.fnmatch(filename, '*.docx')]:
        print("processing %s" % doc)
        wordapp.Documents.Open(doc)
        docastxt = doc.rstrip('docx') + 'txt'
        wordapp.ActiveDocument.SaveAs(docastxt,FileFormat=win32com.client.constants.wdFormatText)
        wordapp.ActiveDocument.Close()

questionAnswers(2)

yourAnswerToTheQuestion