ホームページ > バックエンド開発 > Python チュートリアル > Python でファイルまたはフォルダーが存在するかどうかを判断する 3 つの方法を使用する例の共有

Python でファイルまたはフォルダーが存在するかどうかを判断する 3 つの方法を使用する例の共有

黄舟
リリース: 2017-07-27 15:54:56
オリジナル
1577 人が閲覧しました

この記事では、os モジュール、Try ステートメント、および pathlib モジュールをそれぞれ使用して、ファイルまたはフォルダーが存在するかどうかを確認する 3 つの方法を紹介します。興味のあるお友達は、一緒に見てみましょう

ファイルを読み書きする前に、ファイルまたはディレクトリが存在するかどうかを確認する必要があります。そうしないと、特定の処理方法によってプログラム エラーが発生する可能性があります。したがって、操作を実行する前にファイルが存在するかどうかを確認することが最善です。

ここでは、osモジュール、Tryステートメント、pathlibモジュールをそれぞれ使用して、ファイルまたはフォルダーが存在するかどうかを確認する3つの方法を紹介します。

1. os モジュールを使用します

os モジュールの os.path.exists() メソッドは、ファイルが存在するかどうかを確認するために使用されます。

  • ファイルが存在するかどうかを確認する


import os
os.path.exists(test_file.txt)
#True
os.path.exists(no_exist_file.txt)
#False
ログイン後にコピー
  • フォルダーが存在するかどうかを確認する


import os
os.path.exists(test_dir)
#True
os.path.exists(no_exist_dir)
#False
ログイン後にコピー

os.path.exists()< /code> メソッドで、ファイルとフォルダーが同じかどうかを判断します。 <code>os.path.exists()方法,判断文件和文件夹是一样。

其实这种方法还是有个问题,假设你想检查文件“test_data”是否存在,但是当前路径下有个叫“test_data”的文件夹,这样就可能出现误判。为了避免这样的情况,可以这样:

  • 只检查文件


import os
os.path.isfile("test-data")
ログイン後にコピー

通过这个方法,如果文件”test-data”不存在将返回False,反之返回True。

即是文件存在,你可能还需要判断文件是否可进行读写操作。

判断文件是否可做读写操作

使用os.access()

実は、この方法にはまだ問題があり、「test_data」というファイルが存在するかどうかを確認したいのですが、現在のパスの下に「test_data」というフォルダーがあるため、誤判定が発生する可能性があります。このような状況を避けるために、次のようにすることができます:


ファイルのみをチェック

  • os.access(, )
    ログイン後にコピー

    このメソッドでは、ファイル「test-data」が存在しない場合はFalseが返され、それ以外の場合は true が返されます。
  • ファイルが存在する場合でも、そのファイルの読み取りと書き込みが可能かどうかを判断する必要がある場合があります。

  • ファイルの読み取りと書き込みが可能かどうかを確認する

  • os.access() メソッドを使用して、ファイルの読み取りと書き込みが可能かどうかを確認します。

    構文:

import os
if os.access("/file/path/foo.txt", os.F_OK):
  print "Given file path is exist."
if os.access("/file/path/foo.txt", os.R_OK):
  print "File is accessible to read"
if os.access("/file/path/foo.txt", os.W_OK):
  print "File is accessible to write"
if os.access("/file/path/foo.txt", os.X_OK):
  print "File is accessible to execute"
ログイン後にコピー

path はファイルパス、mode は動作モードで、いくつかのタイプがあります:

os.F_OK: ファイルが存在するかどうかを確認します。

os.R_OK: 確認します。ファイルが利用可能かどうか Read;

os.W_OK: ファイルが書き込み可能かどうかを確認します;


os.X_OK: ファイルが実行可能かどうかを確認します

    このメソッドは、ファイルが存在するかどうかを判断して返します。パスが存在し、さまざまなアクセス モードの権限が True または False です。
  • open()
    ログイン後にコピー
  • 2. Try ステートメント

を使用すると、プログラム内で直接 open() メソッドを使用して、ファイルが存在し、読み取りおよび書き込み可能かどうかを確認できます。


構文:

try:
  f =open()
  f.close()
except FileNotFoundError:
  print "File is not found."
except PersmissionError:
  print "You don&#39;t have permission to access this file."
ログイン後にコピー

開いたファイルが存在しない場合、プログラムはエラーをスローします。このエラーをキャッチするには try ステートメントを使用します。

プログラムがファイルにアクセスできない場合は、次のような理由が考えられます。

開いたファイルが存在しない場合、FileNotFoundError 例外がスローされます。

ファイルは存在しますが、アクセスする権限がありません。その場合、異常な PersmissionError がスローされます。

    したがって、次のコードを使用してファイルが存在するかどうかを判断できます:
  • try:
      f =open()
      f.close()
    except IOError:
      print "File is not accessible."
    ログイン後にコピー
実際、上記の 2 つの例外は IOError のサブクラスです。したがって、プログラムは簡略化できます:


    path = pathlib.Path("path/file")
    path.exist()
    ログイン後にコピー
  • try ステートメントを使用して判断を行い、すべての例外を非常に簡単かつエレガントに処理します。また、他のモジュールと比較して、他の外部モジュールを導入する必要がありません。

3. pathlib モジュールを使用する


pathlib モジュールは Python3 バージョンでは組み込みモジュールですが、Python2 ではサードパーティのモジュールを別途インストールする必要があります。 pathlib を使用するには、まずファイル パスを使用してパス オブジェクトを作成する必要があります。このパスには、ファイル名またはディレクトリ パスを指定できます。

🎜パスが存在するかどうかを確認する🎜🎜🎜🎜🎜🎜
path = pathlib.Path("path/file")
path.is_file()
ログイン後にコピー
🎜🎜🎜パスがファイルであるかどうかを確認する🎜🎜🎜🎜🎜🎜rrreee🎜🎜🎜 概要🎜🎜🎜

以上がPython でファイルまたはフォルダーが存在するかどうかを判断する 3 つの方法を使用する例の共有の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート