Pythonコードセットpathlibアプリケーションを使用して、指定されたディレクトリ内のすべてのファイルを取得する方法

WBOY
リリース: 2023-04-19 12:37:03
転載
2170 人が閲覧しました

(1) 次のコードは、デフォルトで、指定されたディレクトリ root_dir 内のすべてのファイルを再帰的に取得します。再帰パラメータが False に指定されている場合、root_dir ディレクトリ内のすべてのファイルのみが取得され、再帰検索は実行されません。 suffix_tuple パラメータを指定すると、root_dir ディレクトリに指定したサフィックスファイルが取得できます。

from pathlib import Path

def get_all_files(root_dir,recursive=True,suffix_tuple=()):
    all_files=[]
    if Path(root_dir).exists():
        if Path(root_dir).is_dir():
            if recursive:
                for elem in Path(root_dir).glob("**/*"):
                    if Path(elem).is_file():
                        suffix=Path(elem).suffix
                        if not suffix_tuple:
                            all_files.append(elem)
                        else:
                            if suffix in suffix_tuple:
                                all_files.append(elem)
            else:
                for elem in Path(root_dir).iterdir():
                    if Path(elem).is_file():
                        suffix=Path(elem).suffix
                        if not suffix_tuple:
                            all_files.append(elem)
                        else:
                            if suffix in suffix_tuple:
                                all_files.append(elem)
        else:
            all_files.append(root_dir)
    return all_files
ログイン後にコピー

(2) 具体的な使用方法は以下の通りです。つまり、テストコードで、具体的なディレクトリパスを指定します。存在するディレクトリ

if __name__=="__main__":
    path="D:/gitee/oepkgs/mugen/testcases/cli-test/acl/oe_test_acl_defaulr_rule.sh"
    for elem in get_all_files(path):
        print(elem)
    print("-------------------------------------------------")
    path = "D:/gitee/oepkgs/mugen/testcases/cli-test/acl"
    for elem in get_all_files(path):
        print(elem)
    print("-------------------------------------------------")
    path = "D:/gitee/oepkgs/mugen/testcases/cli-test/acl"
    for elem in get_all_files(path,False):
        print(elem)
    print("-------------------------------------------------")
    path = "D:/gitee/oepkgs/mugen/testcases/cli-test/acl"
    for elem in get_all_files(path, True,(".sh",)):
        print(elem)
    print("-------------------------------------------------")
    path = "D:/gitee/oepkgs/mugen/testcases/cli-test/acl"
    for elem in get_all_files(path, True, (".json",)):
        print(elem)
ログイン後にコピー

実行結果は以下の通り、最初にファイルとしてパスを指定した場合はクエリ結果としてファイルがそのまま返され、最後に.jsonサフィックスを指定しています。デバッグ マシン上に json ファイルがありません。出力は空です。

Pythonコードセットpathlibアプリケーションを使用して、指定されたディレクトリ内のすべてのファイルを取得する方法

以上がPythonコードセットpathlibアプリケーションを使用して、指定されたディレクトリ内のすべてのファイルを取得する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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