2016-03-22 7 views
1

Mein Programm muss eine andere Datei mit dem Namen" CTL.py "erstellen, die jedes Wort in der Textdatei enthält Großbuchstaben und jeder Satz, der mit "#" endet. Ich muss den Titel() verwenden. Es gibt 131 Zeilen in meiner Textdatei. Mein Denkprozess besteht darin, eine Schleife zu verwenden, um jeden Buchstaben im Text zu lesen und zu addieren. #‘nach einer readline-() Befehl. Alle Ideen, wie um dies zu realisieren?Wie kann ich den Befehl ".title() verwenden, um eine Textdatei zu lesen und jedes Wort in der Datei groß zu schreiben?

def main(): 

    myFile = open('/Users/Chandlers_Mac/Downloads/Lab9-2.txt', 'r') 
    for i in range(131): 
     data = myFile.read() 
     data.title() 
     print(data, end = '') 

#end main 
main() 
+0

Also .. was ist deine Frage? Wie schreibe ich das in eine Datei? – L3viathan

Antwort

0

Iterate Zeile für Zeile, Titel, strippen das newline dann ein # hinzufügen, eine neue Zeile zurück und schreiben Sie die Zeile in den neuen Datei:

with open('/Users/Chandlers_Mac/Downloads/Lab9-2.txt') as f,open("CTL.py", "w") as out: 
    for line in f: 
     out.write(line.title().rstrip()+"#\n") 

In Bezug auf Ihre eigenen Code:

data.title() 

tut nichts, wie Sie Daten nicht neu zuzuweisen, Sie würden data = data.title() benötigen, rufen Titel eine neue Zeichenfolge erstellen Sie es nicht das Original nicht verändert, auch don‘ t brauchen Reichweite und selbst wenn Sie nach dem ersten Aufruf an .read() würde der Iterator erschöpft sein, so würden die nächsten 130 Anrufe nichts tun. Es gibt viel bessere Möglichkeiten, aber wenn Sie 131 Zeilen aus einer Datei mit dieser Methode erhalten möchten, würden Sie oder nicht lesen, da liest die ganze Datei auf einmal.