【Python】globモジュールの便利な使い方「フォルダー内のファイルを一括で表示」

    目次

    globモジュールでフォルダー内のファイルを一括で表示させる

    globは「まとまり」や「かたまり」といった意味があります。

    Pythonのglobモジュールを使うと、ワイルドカードなどの特殊文字を使って、条件を満たすファイル名、フォルダ名、などのパスの一覧を取得できます。

    YouTubeでも解説しているので、お役立てください。

    ファイルを一括で表示させる

    このglob関数を使ってフォルダー内のファイルを一括で表示するプログラムを作ってみます。

    動画のExcelサンプルファイルは下ボタンからダウンロードできます

    check_date.py

    import pandas as pd
    import glob
    # ファイルループ Excel形式のファイル名だけ取り出す
    for excel_filename in glob.glob("*.xlsx"):
    # ファイル名を表示
    print("ファイル名"+excel_filename)
    # Excelファイルの中身を読み込み
    df = pd.read_excel(excel_filename,engine="openpyxl"))
    # データの表示
    print(df)
    

    このプログラムのポイントはglobモジュールを使っている点です。 glob モジュールのglob 関数は、引数に指定したパターンに合うファイルの一覧を取得し、 for文に渡して繰り返し処理することができます。

    glob 関数がファイルを探しに行くのは、カレントディレクトリ、つまり、現在プログラムファイルが置かれているフォルダ内です。 * (アスタリスク)記号をワイルドカードと呼び、 「*.xlsx」 と指定した場合は、 拡張子が xlsx で終わるファイルの一覧を返します。 JPEGファイルの一覧を取得したい場合は「*.jpg」 のように指定します。「フォルダ名/」を付けることで、 探す場所を特定のフォルダにしぼることもできます。 よく使われるパターンを以下にまとめました。

    パターンマッチの例

    as* 
    冒頭がas で始まるファイルやフォルダ
    as*.txt
    冒頭がas で始まるテキストファイル
    src/*.jpg
    カレントディレクトリ内の src フォルダ内にあるJPEGファイル
    **/*.xlsx
    カレントディレクトリ内のすべてのサブフォルダ内にあるExcelファイル

    msoffcryptoでパスワードロックされたファイルを読み込む

    パスワードロックされたExcelファイルを読み込むことができます。パスワード=“~”の部分がパスワードの指定なので、必要に応じて変更してください。

    パスワードロックされたExcelファイルは暗号化されており、 そのままpandas で読み込むことができません。 msoffcrypto パッケージを使って、パスワードを解除し、 それを read_excel関数に渡す流れとなります。

    check_data2.py

    import pandas as pd
    
    import glob
    
    import msoffcrypto
    
    import io
    
    for excel_filename in glob.glob("*.xlsx"):
    
        print("ファイル名:"+excel_filename)
    
        with open(excel_filename,"rb") as excel_file:
    
            file=msoffcrypto.OfficeFile(excel_file)
    
            file.load_key(password="python")
    
            data=io.BytesIO()
    
            file.decrypt(data)
    
            df=pd.read_excel(data)
    
            print(df)

    msoffcryptoは以下のコマンドでインストールしてください。

    pip install msoffcrypto-tool

    まず、glob 関数で取得したExcelファイルを、 open 関数を使ってバイナリデータとして読み込みます。 バイナリデータとは 「テキストデータではない」という意味ですが、 あまり深く考えなくてもかまいません。

    msoffcrypto. Office File 関数でファイルを取得し、 load_key メソッドで読み取り用パスワードを指定します。 そのあとの io. ByteslO 関数が実際にファイルを読み込んでいる部分で、 decrypt メソッドを使って暗号化を解除します。 暗号化解除後のデータを read_excel関数に渡すと、 DataFrameオブジェクトが返されます。

    PythonでExcelを操る他テクニック

    複数のファイルの文字をまとめて置き換えする

    openpyxlの使い方 Excelの差し込みがワンクリックで

    tabulaのconvert_into関数でPDFファイルをExcelに変換

    これは便利!Pythonのconcat関数で追記するプログラムをつくる

    【Python】項目がバラバラなExcelファイルを一つにまとめる

    iterrowsメソッドで複数のファイルを1つにまとめる

    【Python】to_excelメソッドでCSVファイルをExcel形式に変換

    Pythonの開発環境をAnacondaで整える~プログラム実行まで~

    よかったらシェアしてね!
    • URLをコピーしました!
    目次