5

ここで、 と のペアを使用するwith open(filename)代わりに使用することをお勧めし(少なくとも基本的なタスクでは)、 を使用する方が良いことも読みました。open(filename)filename.close()try

Q1: 私の理解が正しければ、適切な順序は何ですか?

try:
  with open(filename) as f:
    do something, eg. match string

また

with open(filename) as f:
  try:
    do something, eg. match string

Q2: ファイル処理エラーのポップアップを表示するコードも挿入したい場合、どのケースが適していますか? (ファイルが見つからない、または何か)

4

1 に答える 1

8

try/exceptステートメントをできるだけ例外のソースに近づけてください。

s をキャッチしていない場合は、ステートメントIOError内に入れます。with一方、スローするのが例外の場合は、ステートメントの前後open()に置きます。with

ステートメントが長い場合、またはステートメント スイートでwith発生する同じ例外をマスクしたくない場合は、最初に呼び出しを実行します。withopen()

try:
    fileobj = open(filename)
except IOError:
    print('File problems!')
else:
    with fileobj as f:
        # do something
于 2014-04-23T09:48:36.800 に答える