2016-06-29 25 views
0

Ich versuche ein kleines Programm zu erstellen, in dem ich ein docx Dokument öffne und Zeichen durch andere ersetze, um eine alte Schule-caesar-artige Verschlüsselung zu tun, nachdem ich die Dokumentation überprüft habe: [https://python-docx.readthedocs.io] Ich bin Ich fürchte, ich kann die Objektmethoden und -attribute nicht finden, die Dokumentation erklärt nur irgendwie, wie man bestimmte Dinge wie das Erstellen von Absätzen und Abschnitten tut, aber ich kann nichts über das Abrufen von Dokumentdaten und das Parsen finden. Ich möchte eine Liste der Objekte im Dokument finden, damit ich sie analysieren kann.python-docx - Ersetzen von Zeichen

Ich möchte so etwas wie dies tun:

from docx import Document 
document = Document('essay.docx') 

paragraph = [] 
for i in document: 
    paragraph.append(i) 

for i in paragraph: 
    for y in i: 
     y.replace("a", "y") 

... 

Kann python-docx so etwas tun? Wenn ja, wo finde ich die Dokumentation, die mir zeigen könnte, wie es geht?

Wenn ich vielleicht die falsche Bibliothek benutze, würde ich es auch schätzen, wenn Sie darauf hinweisen könnten.

Antwort

1

Die API-Dokumentation wird auf der verknüpften Seite indiziert (d. H. Ihr Inhaltsverzeichnis wird angezeigt) und beschreibt alle Objekte und Methoden. https://python-docx.readthedocs.io/en/latest/#api-documentation

+0

Ja, ich las auch die Seiten und ich fand Methoden wie „add_paragraph()“ und „add_run()“ aber ich nicht Methoden wie finden konnte „get_paragraph()“. Ich muss Objekte durchforsten und modifizieren, um eine neue Datei zu erstellen. Vielleicht funktioniert diese Bibliothek nur zum Erstellen von docx-Dokumenten, aber nicht zum Abrufen von Daten von ihnen? – andrralv

+0

Suchen Sie im Document-Objekt. Ich glaube, du suchst nach "Document.paragraphen". – scanny

+0

Es scheint zu hackig, um eine Antwort zu sein, aber Sie können Word-Dokumente tatsächlich entzippen und gibt unter anderem ein Textdokument mit dem unformatierten Text zurück. Ich bin nicht vertraut mit dieser Bibliothek, aber im schlimmsten Fall können Sie ein Dienstprogramm verwenden, um es zu entpacken, dann den Text lesen, die nicht benötigten Teile löschen und dann diese Bibliothek verwenden, um das gewünschte Dokument zu erstellen. – Jeff

0

Ich denke, ich fand etwas nützlich, falls zukünftige Leser interessiert sein könnten. Das Problem mit Python-docx ist, dass ich Absätze einzeln bekommen könnte und das würde eine Menge Zeit in Anspruch nehmen. Ich weiß nicht einmal, ob Titel, Fußzeilen und Kopfzeilen als Absätze zählen.

Aber es gibt eine Bibliothek namens texttract, die docx und andere Dateien lesen kann, sie integriert sich in python-docx, oder zumindest sagt es die kurze Dokumentation. Aber was ich tun kann, ist meine docx-Datei in PDF und Verwendung speichern:

text = textract.process(
    'path/to/norwegian.pdf', 
    method='pdftofile', 
    language='nor', 
) 

Auf diese Weise können Sie den gesamten Text als String erhalten und speichern Sie das Layout des PDF zu erhalten. Habe es noch nicht getestet, werde diesen Beitrag bearbeiten, wenn es nicht wie vorgesehen funktioniert.

http://textract.readthedocs.io/en/latest/python_package.html#python-package