Python でジェネレーターが空かどうかを確認する
この記事では、Python でジェネレーターが空かどうかを確認する方法について説明します。
Python でジェネレーターが空かどうかを確認する
Python でジェネレーターが空かどうかを確認するとは、パスが空であることを確認するためにチェックされることを指します。 このためには、関連するパスをディレクトリまたはファイルとして事前に特定する必要があります。これにより、チェックに必要なアプローチを簡単に選択できるようになります。
次のスニペットは、filepath
と dirpath
という名前の 2つのプレースホルダー変数の関与を示しています。 これらの変数は、ローカル ファイルとディレクトリの識別に使用されます。
dirpath = "/mnt/f/code.books/articles/python"
filepath = "/mnt/f/code.books/articles/python/code/file_dir.py"
上記のプレースホルダー変数は、標準パッケージとして機能する Python の os
モジュールで使用できます。 関連するオペレーティング システムで動作するオブジェクト、関数、および定数で使用できます。
os
モジュールは os.path
として表すこともでき、関数として機能する isdir()
と isfile()
を含みます。 これらの機能により、ユーザーは指定されたディレクトリと任意のファイルを区別できます。
両方の関数の動作における戻り値はブール値です。
次の例を検討してください。
import os
dirpath = "/mnt/f/code.books/articles/python"
filepath = "/mnt/f/code.books/articles/python/code/file_dir.py"
os.path.isfile(dirpath) # False
os.path.isdir(dirpath) # True
os.path.isfile(filepath) # True
os.path.isdir(filepath) # False
isdir()
および isfile()
関数は、この例ではそれぞれ os.path.isdir
および os.path.isfile
として示されています。 両方の関数の動作における戻り値はブール値です。
これは、これらの関数の実装の出力が True
または False
として返されることを意味します。 True
と False
の戻り値は、それぞれの機能に基づいて、関連するパスがファイルかディレクトリかを示します。
この確認の後、Python 3.4 バージョン以降で pathlib
という名前の別のモジュールを使用できます。 このモジュールを使用すると、オブジェクト指向のインターフェイスにより、ユーザーはファイル システムを簡単に操作できるようになります。
このモジュールは、os.path
モジュールと比較して、実装内の簡素化を保証します。 これには、その作業に関連する Path
クラスがあり、パスが引数として受け入れられます。
この後、そのパスによって Path
オブジェクトが返されるため、ユーザーは属性とメソッドを使用して簡単にチェーンまたはクエリを実行できます。
次のコード スニペットを見てください。
from pathlib import Path
dirpath = "/mnt/f/code.books/articles/python"
filepath = "/mnt/f/code.books/articles/python/code/file_dir.py"
Path(dirpath).is_file() # False
Path(dirpath).is_dir() # True
Path(filepath).is_file() # True
Path(dirpath).is_file() # False
このスニペットでは、Path
オブジェクトがチェックされ、戻り値としてブール値を持つディレクトリまたはファイルであることが確認されます。 dirpath
および filepath
変数は、is_file()
および is_dir()
メソッドに関連付けられた Path
オブジェクトにも関係しています。
それらの実装は、出力を True
または False
として返し、ディレクトリまたはファイルをオブジェクトとして示します。
次のステップは、ジェネレーターが空で、空のパスまたはファイルを含むことができるかどうかを確認することです。 パスまたはファイルにはゼロバイト ファイルという名前を付けることもでき、コンテンツやデータを持たないさまざまな種類にすることもできます。
データのないメタデータを含むファイルは、空のファイルの傘下にないことに注意してください。 これには、作成者を含む音楽ファイルが含まれる場合もあります。
空のファイルは、macOS や LINUX などのプラットフォームで簡単に作成できます。 これを行う方法のスニペットを次に示します。
$ touch emptyfile
次のスニペットは、Windows でそれを行う方法を示しています。
$ type nul > emptyfile
これを行った後、空でないファイルまたは空のファイルが空のファイルを指すことができる変数を定義する必要があります。 その空のファイルはおそらく 0 バイトですが、空でないファイルのサイズは 1 バイトです。
以下は、その例です。
emptyfile = "/mnt/f/code.books/articles/python/emptyfile"
nonemptyfile = "/mnt/f/code.books/articles/python/onebytefile”
これにより、オプションのパラメーターを next()
関数に使用できます。これにより、ユーザーはジェネレーターが空であることを確認できます。
そのためのコード スニペットを次に示します。
_exhausted = object()
if next(some_generator, _exhausted) is _exhausted:
print("empty generator")
このスニペットでは、空のジェネレーターは使い果たされたイテレーターとオブジェクトの使用法によって示されます。 この後、if
条件が実装内に配置されます。これは、何らかのジェネレーター値を持つ使い果たされたジェネレーターをチェックします。
空のジェネレーターの場合、条件が満たされ、実装は空のジェネレーターを出力として返します。
Hello! I am Salman Bin Mehmood(Baum), a software developer and I help organizations, address complex problems. My expertise lies within back-end, data science and machine learning. I am a lifelong learner, currently working on metaverse, and enrolled in a course building an AI application with python. I love solving problems and developing bug-free software for people. I write content related to python and hot Technologies.
LinkedIn