2016-11-15 2 views
-2

Ich versuche, mein Programm eine Blume in einer Textdatei zu finden. Die Datei teilt dem Benutzer mit, wie viele Blumen dieses Typs auf Lager sind. Ich kann es machen, indem ich die Information drucke, aber gibt es irgendeine Weise, die der Computer die Informationen in eine neue Textdatei zuerst setzen und die Textakte dann drucken kann?Erstellen einer Textdatei über Python?

Hier ist die Textdatei, die die Blüten und ihren Bestand enthält (und einige andere Zahlen zu tun, wie viele auf Lager sein müssen)

cacti, 7, 10, 5 
roses, 15, 20, 20 
tulips, 4, 10, 5 
lilies, 9, 15, 7 

Hier ist das Programm, das ich bisher habe, die nur druckt, was ich, anstatt, eine neue Textdatei finden muß:

stockfile=open("stockfile.txt", "r") 

print("Flower Shop") 
print("cacti, roses, tulips, or lilies?") 
flower=input("Which type of flower do you need to know the stock level of?")  
line=stockfile.readline() 
data=line.split(",") 
if flower == "cacti": 
    print("Cacti" , data[0]) 
    print("Cacti in stock: ", data[1]) 
    print("Target stock level", data[2]) 
    print("Reorder level", data[3]) 
+1

Weil Sie es in 'print' geschrieben haben, anstatt in eine Textdatei zu schreiben. Warum würden Sie überrascht sein, dass es das ist? – jonrsharpe

+0

Sie nicht 'stockfile.write()' irgendwo in Ihrem Code - Daher, warum es nicht schreibt. –

+0

Werfen Sie einen Blick, helfen Sie sich: https://docs.python.org/3/tutorial/inputoutput.html – oxalorg

Antwort

0

ein kurzer Kommentar zum Einstieg: .WRITE() ist die Methode für eine Datei zu schreiben. Und wenn Sie eine Datei öffnen, tun Sie dies in einem Kontext, um alles sauber zu halten. Beispiel:

with open("outfile.txt","w") as fout: 
    #do your stuff and write it out 
    fout.write(<data>) 

Für Ihren Fall können Sie natürlich alles in einer Schleife. Zum Beispiel:

with open("stockfile.txt","r") as fin: 
    with open("outfile.txt","w") as fout: 
     for line in fin: 
      #do your stuff and write it out 
      fout.write(<data>) 

Viel Glück.

-1

Sie können ein neues Dateiobjekt öffnen, wie

von dort
fileObject = open('newfile.txt', 'w') 

Schreiben Sie das gewünschte Ergebnis in die Datei und drucken folgt, wie Sie für die erste Datei zu tun.

fileObject.write("Cacti : {}, In stock: {}, Target stock level: {}, Reorder level".format(data[0], data[1], data[2], data[3])) 
+0

'" a + "' bedeutet, dass es an eine Datei angehängt wird, wenn sie existiert, und auch zum Lesen geöffnet wird. Keine davon ist notwendig, um eine neue Datei von Grund auf zu füllen (was Modus "" w "" sein sollte). – ShadowRanger

+0

Rechts. Ich habe den Append-Modus hinzugefügt, falls die Datei während der nächsten Läufe bearbeitet werden sollte. Vielen Dank. –

Verwandte Themen