Ich hoffe, ich habe die Frage richtig formuliert. Ich versuche mich zu zwingen, ein besserer Programmierer zu sein. Mit besser, ich meine effizient. Ich möchte ein Programm schreiben, um die Dateien in einem Verzeichnis zu identifizieren und jede Datei für die weitere Verarbeitung zu lesen. Nach einigen schlurfenden bekam ich dazu:Wie zu wissen, wann Ressourcen in Python verwalten
for file in os.listdir(dir):
y=open(dir+'\\'+file,'r').readlines()
for line in y:
pass
y.close()
Es soll nicht überraschen, dass ich ein Attribut bekommen, da y eine Liste ist. Daran habe ich nicht gedacht, als ich das Snippet geschrieben habe.
ich darüber denke und habe Angst, dass ich fünf offene Dateien (es gibt fünf Dateien in dem Verzeichnis, das von dir angegeben.
Ich kann den Code beheben, damit es läuft und ich schließe ausdrücklich die Dateien nach dem Öffnen . sie ich bin gespannt, ob es nötig ist oder wenn Python behandelt die Datei in der nächsten Iteration der Schleife zu schließen wenn ja, dann nur ich muss schreiben:.
for file in os.listdir(dir):
y=open(dir+'\\'+file,'r').readlines()
for line in y:
pass
ich vermute, ich, dass es (Python) umgehen kann Das ist der Grund, warum ich denke, dass dies so gehandhabt werden könnte, dass ich das Objekt/das Ding, auf das y verweist, geändert habe, wenn ich die zweite Iteration t starte Hier sind keine Speicherreferenzen mehr auf die Datei, die mit der readlines-Methode geöffnet und gelesen wurde.
ich etwas fehlen muss, aber es ist eine Überraschung für mich, dass Sie einen Attribute, wenn y eine Liste ist. –
Das OP bezieht sich auf die Zeile 'y.close()', glaube ich. –
Sie können eine Liste nicht schließen, y ist eine Liste mit der readlines() -Methode - ich hoffe, Methode ist der richtige Name für was readlines ist. – PyNEwbie