2

パフォーマンスを最大化するには、どちらを使用する必要がありますか? os.path.isfile(path)またはopen(path)

4

3 に答える 3

3

マイクはそのisfile()ほうが速いことを示しましたが、考慮すべきことがさらに 2 つあります。

  1. isfile()ファイルが存在するかどうかのみをテストします。読み取りまたは書き込みのアクセス許可については何も教えてくれません! ファイルが存在するかどうかだけを知りたいということは非常にまれです。ファイルを使って何かできるかどうかをテストしたいことがよくあります。open()これを教えてくれます。
  2. Pythonic コードは一般に EAFP (許可よりも許しを求める方が簡単) スタイルを好みます。このスタイルでは、何かを実行しようとし、できない場合は例外をキャッチします。(反対は LBYL -- Look Before You Leap で、他の言語の中でも Java や C で一般的です。)

これらの 2 つの点はどちらも、本当にパフォーマンスに追われてopen()いる場合を除き、使用したほうがよい可能性があることを示唆しています。

于 2013-06-06T15:13:06.220 に答える
0

ファイルを実際に開くことができれば、ファイルがそこにあることを確認できるという意味で、Afaikはより安全であるisfile()と同時に高速になります。open(path)open()

于 2013-06-06T12:52:45.873 に答える