Pythonのyieldとは?

Pythonの yield は、ジェネレータ関数を定義する際に使用されるキーワードです。ジェネレータ関数は、イテレータを返す特殊な関数。対して通常の関数は、呼び出されると処理を実行し、結果を返すと終了します。

yield キーワードを使用することで、ジェネレータ関数はイテレータを作成し、値を逐次的に生成します。

def count_up_to(n):
    i = 1
    while i <= n:
        yield i
        i += 1

osモジュールとの組み合わせ

Pythonの os モジュールは、オペレーティングシステムとのインタラクションを可能にする一連の関数を提供します。これには、ファイルやディレクトリの操作が含まれます。

os.walk() 関数は、指定したディレクトリを起点に、そのディレクトリ以下のすべてのディレクトリとファイルを探索します。この関数は、探索したディレクトリの名前、そのディレクトリに含まれるサブディレクトリの名前、そしてそのディレクトリに含まれるファイルの名前を返します。

yield を使って os.walk() の結果を一つずつ返すことで、大量のファイルやディレクトリを効率的に処理することができます。

import os

def find_all_files(directory):
    for root, dirs, files in os.walk(directory):
        yield root
        for file in files:
            yield os.path.join(root, file)

このように、Pythonの yieldos モジュールを組み合わせることで、大規模なデータを効率的に処理することが可能になります。.

投稿者 admin

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です