Mein Python Programm verhält sich komisch?
Ich versuche gerade eine Funktion in python zu schreiben, die es mir ermöglicht Text aus .docx also Word Dateien zu extrahieren. Dazu verwende ich die Bibliothek pyth-docx. Mein Programm tut auch was es soll, wenn ich eine docx Datei in python erstelle und anschließend meine Funktion verwende gibt es mir den Text zurück.
Bei von mir modifizierten oder erstellten Word Dokumenten kann es aber den pfad nicht finden und gibt mir PackageNotFoundError zurück. Im Internet bin ich darauf gekommen zu überprüfen, ob es sich bei meiner Datei um eine Zip-Datei handelt. Also hab ich dies mit zipfile gemacht und tatsächlich sind meine gespeicherten Word Dokumente keine zipfiles. Was läuft hier schief? Nochmal mein code zur überprüfung:
doc = docx.Document()
doc.add_paragraph("Hallo")
doc.save(test_path")
print(is_zipfile(test_path))
//output = true
wenn ich anschließend in diesen test_path gehe, eine Zahl tippe und speichern dürcke- >
//output = false
Sind moderne docx dokumente keine zip files mehr? Oder was läuft schief bei mir?
1 Antwort
Doch, die „.docx“-Dokumente sollten weiterhin ZIP-Dateien sein. Ich habe das auch mal bei meinen Dateien getestet, die ich mit Microsoft Word erstellt habe. Da liefert is_zipfile() überall ein True zurück.
Womit hast du denn die Datei bearbeitet (als du die Zahl eingetippt hast)? Mit Microsoft Word?
Kannst du evtl. eine dieser Dateien zur Verfügung stellen, bei denen das nicht funktioniert?
Hmm, ob das an einer encryption liegen kann, kann ich schwer beurteilen. Eigentlich sollte python aber doch über das Betriebssystem normalerweise quasi nichts von der Verschlüsselung merken und Zugriff auf die unverschlüsselte Daten haben.
Auf gutefrage.net gibt es keine Möglichkeit die Dateien direkt hochzuladen. Die müsstest du woanders hochladen und uns hier dann Zugriff auf die woanders hochgeladene Datei geben.
[Natürlich solltest du dabei beachten, ob du die entsprechenden Dateien hier in der Öffentlichkeit teilen möchtest. Das war nur ein Vorschlag, damit ich evtl. auch mal schauen könnte, ob mir etwas an den Dateien auffällt.]
WOOOW, ich habe mein Word Programm auf public gestellt und jetzt funktioniert es. Danke für deine Antworten, das hat mir sehr geholfen. Ich werde devinitiv nicht mehr Dateien nach ihren Endungen klassifizieren :D. Ich weiß nicht was dadrin ist, wenn ich es auf Mitarbeiter stelle, aber anscheinend ist es keine .zip Datei mehr trotz .docx Ändung. Kapier ich zwar nicht aber immerhin eine Lösung
Ich mache das mit Microsoft Word ja. Ich bin aber am Arbeitsrechner, könnte sein, dass die irgendeine encryption haben beim speichern, die die Dateiart ändert?
Kann man hier einfach Dateien hochladen? oder meinst du per Dropbox?