Udemyでもプログラミングを教えていますUdemy

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

  • URLをコピーしました!
目次

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をコピーしました!
  • URLをコピーしました!
目次