2017-12-28 1 views
1

In Ordnung, also hier ist, was ich versuche zu tun. Ich möchte den Text einfach von einer Textdatei in ein Word-Dokument konvertieren. Ich habe derzeit dies ...Gibt es eine einfache Möglichkeit, um Wörter in einer Liste Leerzeichen hinzuzufügen?

Wo der Text aus der Textdatei gelesen wird, dann wird jedes Wort zu einer Liste hinzugefügt. Dann werden alle Wörter zum Document hinzugefügt, aber das Problem ist, dass alle Wörter zusammen laufen und keine Leerzeichen haben.

Unten ist ein Beispiel dafür, was der Text sieht aus wie ...

GetreadytoentertheThrivetimeshowontalk.Radio1170broadcastinglivefromthecenteroftheuniverse.It'SbusinessschoolwithouttheBSfeaturingoptometristturnedentrepreneur.Dr.RobertzoellnerwithusSBA,entrepreneuroftheYearclayClark.Dowehavecominginfromoneofourlistenersthattheyasked?Howcanyoucontrolemployeesthatyoucannotfire?HowcanyoucontrolemployeesthatyoucannotfirewellSteve?Couldyouthrowoutsomeinstanceswherethatcouldbeathingwhereyoucouldn'tfiretosuchasuper? 

So will, was ich dies der beste Weg wissen, ist, dies zu tun? Gibt es einen einfacheren Weg? Jede Hilfe würde sehr geschätzt werden. Vielen Dank im Voraus!!!

+0

Es gibt keine einfache Lösung dafür, weil es kein Trennzeichen oder einen einfachen Regex gibt, um herauszufinden, welches Wort in dem Satz enthalten sein soll. Damit meine ich, dass Sie nicht wissen werden, wo Sie die Leerzeichen platzieren müssen, um die Wörter zu erstellen. – arkdevelopment

+3

Wenn ich richtig verstehe, hat die ursprüngliche Textdatei Leerzeichen und dein Programm entfernt sie. Was die Frage aufwirft ... warum? Warum spalten Sie auf Leerzeichen, wenn Sie die ganze Datei trotzdem wollen? –

+0

@SilvioMayolo guten Punkt. Es war ein Code-Block von einem anderen Projekt, also war es der beste Weg, die Wörter in der Liste zu finden. Was würden Sie stattdessen vorschlagen? – EliC

Antwort

5

Warum haben Sie die Zeile auf einige Wörter aufgeteilt? Wenn Sie alles kopieren möchten, sollten Sie mit der Zeile gehen (wird das Leerzeichen und die neue Zeile kopieren), anstatt sie zu teilen. So wird Ihr Code sein:

from docx import Document 

text_file = "pathToYourTextFile.txt" 

#opens document to add text to 
document = Document() 

#adds the entire contents to a list that we will 
#then use to add to the document we just created 
fileContents = [] 
for line in open(text_file): 
    fileContents += line 

#adds all the text we just created to the document as a paragraph 
paragraph = document.add_paragraph(fileContents) 

#saves the document with all the under the name we give it 
document.save('test.docx') 
print("Document saved.") 

Nizza kommentiert btw!

Happy Coding!

2

Sie können " ".join(fileContents) verwenden, so dass Sie das Hinzufügen von Absatz Teil sein, wie die folgenden ändern müssen:

fileContents = [] 
for line in open(text_file): 
    row = line.split(' ') 
    fileContents += list(row) 

#adds all the text we just created to the document as a paragraph 
paragraph = document.add_paragraph(" ".join(fileContents)) 
2

Es ist nicht klar, warum Sie auf Räume sind zu splitten. Wenn Sie row = line.split(' ') entfernen und die folgende Zeile fileContents += line machen, erhalten Sie, was Sie wollen? Sie können den Zeilenumbruch auch wiederherstellen, indem Sie dem vorherigen mit fileContents += '\n' folgen.

Verwandte Themen