Ich muss öffnen & schreiben Sie auf etwa 10 verschiedene Dateien alle innerhalb der gleichen Schleife. z:Ausnahmebedingungsdetails in Python erhalten
for i in range(0,10):
try:
a=5
file1 = open("file1.txt",'w+')
file2 = open("file2.txt",'w+')
#... etc
print(str(a),file=file1)
print(str(a)+"hi",file=file2)
# ... etc
except:
#error handling
Nun, was ich möchte in der Lage zu tun spezifische Ausnahme Informationen zu erhalten, wie zum Beispiel, welche Datei innerhalb der allgemeinen Ausnahme geöffnet/geschrieben wurde. Von meinem derzeitigen Verständnis, würde ich so etwas zu tun haben, zu erreichen, was ich will:
for i in range(0,5):
a=5
try:
file1 = open("file1.txt",'w+')
print(str(a),file=file1)
except:
#error handling for file1
try:
file2 = open("file2.txt",'w+')
print(str(a)+"hi",file=file2)
except:
#error handling for file2
... Welche extrem klobig erhalten wird und unattraktiv, wenn ich dafür etwa 10 verschiedene Dateien zu tun haben, . Gibt es eine Möglichkeit, die Dateinameninformation aus einer allgemeinen Ausnahme wie in meinem ersten Beispiel zu erhalten? Grundsätzlich könnte die Ausnahme Dinge wie "Fehler beim Schreiben in Datei1" ohne einen Versuch/außer speziell für Datei1-Operationen berichten.
edit: Dies ist eine massive Vereinfachung der Daten, die in die Datei geschrieben werden. str (a) und str (a) + "hi" sind keine wirklich guten Darstellungen der tatsächlich geschriebenen Daten; file1 benötigt möglicherweise eine fest codierte Ganzzahl, wobei Datei2 möglicherweise eine Zeichenfolge benötigt, die mit mehreren Variablen formatiert ist. den Öffnungs-/Schreibprozess in eine Schleife zu verallgemeinern wird nicht sehr gut funktionieren.
ich für den enthaltenen Code gemeint berücksichtigt werden als ob es schon in einer Schleife wäre. ich mache das kaputt. Aber unabhängig davon löst das mein Problem nicht wirklich. Die Dinge, die in diese Dateien geschrieben werden, sind nicht unbedingt in irgendeiner Weise, Form oder Form ähnlich. file1 benötigt möglicherweise eine fest codierte "1", file2 benötigt möglicherweise eine Variable, die gedruckt werden muss, und file3 benötigt möglicherweise mehrere Variablen. was am Ende passieren würde, ist eine riesige if-Aussage innerhalb des "mit"; z.B. "Wenn Dateiname = Datei1, schreib das; wenn Dateiname = Datei2, schreibe das; wenn Dateiname = Datei3, schreibe diese andere Sache". Code wird genauso klobig sein – user891876
@ user891876: Siehe meine bearbeitete Antwort. Bestimmen Sie die Beziehung zwischen Dateien und Daten, und schreiben Sie dann jedes Datenelement in die zugehörige Datei in der Schleife. – BrenBarn
Was ist, wenn ich nicht in Datei 3 drucken möchte, wenn Länge (str (a) + str (b))> 5? Jede Datei benötigt definitiv eine eigene Logik. – user891876