2017-06-07 2 views
1

Ich möchte eine Datei aufrufen, ihre Daten löschen, neue Zeilen schreiben und drucken. Unten ist mein Programm und seine Ausgabe.Python: Strings aus einer anderen Datei drucken

from sys import argv 
string, filename = argv 
text = open(filename, 'w+') 
text.truncate() 
line1 = "hey" 
line2 = "I was doing just fine before I met you" 
line3 = "I drink too much and that's an issue but I'm okay" 
text.write('%s\n%s\n%s\n' %(line1, line2, line3)) 
new = text.read() 
old = text.readlines() 
print "%s" %(new) 
print old 
print text.readlines() 
text.close() 

Ausgang:

[] []

+0

'text = öffnen (Dateiname, 'w')'. Das ist es, du bist fertig. Wie auch immer, wenn du nochmal davon lesen willst, musst du es noch einmal im "r" Modus öffnen. –

+0

@Shiva Dann gibt es Fehler für text.read(), nicht im Lesemodus geöffnet. – Mihir

+0

@Mihir Sie müssen die Datei im Lesemodus öffnen, bevor Sie sie lesen können. – ILostMySpoon

Antwort

2

Also Hinzufügen von Such (0) wird hier die Aufgabe erledigen. seek (0) setze den Zeiger am Anfang. Hier ist der Arbeitscode:

from sys import argv 
    string, filename = argv 


    text = open(filename, 'w+') 
    text.truncate() 

    line1 = "hey" 
    line2 = "I was doing just fine before I met you" 
    line3 = "I drink too much and that's an issue but I'm okay" 

    text.write('%s\n%s\n%s\n' %(line1, line2, line3)) 
    text.seek(0) 
    new = text.read() 
    text.seek(0) 
    old = text.readlines() 
    print "%s" %(new) 
    print old 
    text.seek(0) 
    print text.readlines() 

    text.close() 

Ausgang:

hey ich tat ganz gut, bevor ich dich traf ich zu viel trinken, und das ist ein Problem, aber ich bin okay

[‘ hey \ n ',' Mir ging es gut, bevor ich dich getroffen habe \ n ', "Ich trinke zu viel und das ist ein Problem, aber mir geht es gut \ n"] [' hey \ n ',' Ich tat es gerade gut, bevor ich dich traf \ n ', "Ich trinke zu viel und das ist ein Problem, aber ich bin okay \ n"]

1

Also, Ihre Fehler (durch Ihre Kommentare ist, dass es nicht so dass Sie lesen).

Dies ist, weil Sie versuchen, mit einem Dateizeiger zu lesen, der zum Öffnen der Datei im Schreibmodus verwendet wurde.

from sys import argv 
string, filename = argv 
with open(filename, 'w') as text: 
    line1 = "hey" 
    line2 = "I was doing just fine before I met you" 
    line3 = "I drink too much and that's an issue but I'm okay" 
    text.write('%s\n%s\n%s\n' %(line1, line2, line3)) 

with open(filename, 'r') as text: 
    ... 
+0

Kann auch 'w +' verwenden, da das OP die Daten der Datei löschen möchte, bevor die neuen Zeilen geschrieben werden. Auf diese Weise muss er auch nicht 'truncate' aufrufen. – ILostMySpoon

+0

Ich benutze auch truncate. Also zum Lesen + Schreiben + Abschneiden benutzen wir 'w +', warum kann ich es nicht hier benutzen? – Mihir

+0

@Mihir Es gibt wirklich keinen Grund, 'truncate' aufzurufen, wenn du die Datei mit' w + 'öffnest anstatt zu zeigen, dass du ... – ILostMySpoon

Verwandte Themen