私は同じループ内の約10の異なるファイルに&を書き込む必要があります。 例えば:Pythonで例外の詳細を取得
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
今私が何をしたいのですがどのような一般的な例外の中に書かれた/オープンされたものをファイルとして特定の例外情報を取得することができます。私の現在の理解から、私は私が望むものを達成するために、このような何かをする必要があると思います。私は、約10の異なるファイルのためにこれをしなければならないとき、非常に不格好と魅力のない取得する予定です
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
... 。私の最初の例のような一般的な例外からファイル名情報を取得する方法はありますか?基本的に、例外はfile1操作のためのtry/exceptを除いて "file1に書き込むときのエラー"のようなものを報告することができます。
編集:これは、ファイルに書き込まれるデータの大量の単純化です。 str(a)とstr(a)+ "hi"は、実際に書かれたデータの実際の表現ではありません。 file1にはハードコードされた整数が必要な場合があります.file2には複数の変数でフォーマットされた文字列が必要な場合があります。オープン/ライティングプロセスをループに一般化することは、うまく動作しません。
Iが考慮されるべき含まれるコードのためのものあたかも既にループしていたかのように。それを修正してください。 これに関係なく、私の問題は本当に解決されません。これらのファイルに書き込まれる内容は、必ずしもどのような形、形、形式であっても同じではありません。 file1にはハードコーディングされた "1"が必要な場合があり、file2には変数が必要な場合があり、file3には複数の変数が必要な場合があります。何が起きるかは、 "with"内の巨大なif文です。例えば"filename = file1ならば、これを書いてください;もしfilename = file2なら、それを書いてください;もしfilename = file3なら、この他のものを書いてください"。コードはちょうどclunkyになります – user891876
@ user891876:私の編集された答えを見てください。ファイルとデータの関係を事前に整理し、各データをループ内の関連付けられたファイルに書き込みます。 – BrenBarn
length(str(a)+ str(b))> 5の場合、file3に印刷したくない場合はどうすればいいですか? 各ファイルにはそれぞれ固有のロジックが必要です。 – user891876