2016-07-31 16 views
2

Also habe ich nur begann Python zu lernen und nach einer Datei mit dem Namen myfile.txt machen Ich habe versucht, dieses Stück Code ausgeführtTextdatei erhält nicht in Ausgabe window.Python (PyCharm IDE) geöffnet

def Main(): 
    f=open("myfile.txt","r") 
    for line in f: 
     print(line) 
     f.close() 

    if __name__ =="__main__": 
     Main() 

Die Datei doesn 't open, ich bin nur mit einem leeren Ausgabefenster verlassen. Irgendwelche Ideen, was ich falsch gemacht habe? Ich benutze die Pycharm IDE unter Windows. Bitte helfen.

+0

FIXED! Einfach nur f.close entfernt und den vollen Verzeichnisnamen (C: \ Users \ Benutzername \ Desktop \ textfile.txt) verwendet und auch nicht eingerückt. – Raheem

+0

Sie benötigen nicht den vollständigen Verzeichnisnamen, wenn sich Ihre Textdatei im selben Verzeichnis wie Ihre Python-Datei befindet, außer Sie möchten das natürlich :) –

Antwort

1

deindent die if

def Main(): 
    f=open("myfile.txt","r") 
    for line in f: 
     print(line) 
     f.close() 

if __name__ =="__main__": 
    Main() 

Der if Teil Ihrer Main Funktion war, so dass Sie eine rekursive Funktion hatte, als die die Bedingung True

war ich glaube, Sie wollen, dass die if, nachdem Sie getestet werden Definieren Sie die Funktion Main

+0

Sie machen keine Rekursion, Sie machen eine rekursive Funktion. – Li357

+0

repariert es, bitte bearbeiten Sie meine Antwort, wenn Sie Fehler sehen. –

3

Zuerst müssen Sie sicherstellen, dass die Einrückungen korrekt sind. Sie sollten die Datei nicht innerhalb der Schleife schließen, daher ist sie zu stark eingerückt. Und um das Programm auszuführen, muss Ihre if __name__ =="__main__": außerhalb der Funktion definiert werden. Versuchen Sie folgendes:

def main(): 
    f = open("myfile.txt","r") 
    for line in f: 
     print(line) 
    f.close() 

if __name__ =="__main__": 
    main() 

Normalerweise verwenden Sie das Schlüsselwort with, wenn Dateien Handhabung. Es verwaltet das Öffnen und Schließen für Sie. Alles, was innerhalb der with-Anweisung eingerückt ist, ist mit der geöffneten Datei abgeschlossen. Versuchen Sie dies, es macht genau das gleiche:

def main(): 
    with open("myfile.txt", "r") as f: 
     for line in f: 
      print(line) 

if __name__ == '__main__': 
    main()