pythonを使用してExcelの自動処理について勉強している中、
glob関数を使用するときに躓いた箇所があったため、備忘録として残しておく
glob関数とは
ディレクトリに格納されたファイル名を抽出する関数
引数に抽出条件を指定することができる。
この中からExcelファイル(拡張子".xlsx")のみ抽出したいとすると、以下コードを実行することで実行結果の通り抽出することができる。
※抽出条件に記載されている"*"は、正規表現で「直前の1文字の0回以上の繰り返し」を表現している。
glob_test.py
import glob
files=glob.glob("*.xlsx")
print(files)
実行結果
['age_year.xlsx', 'cellname.xlsx', 'data_type.xlsx', 'hello.xlsx']
エラーの内容
上記glob_test.pyの内容と全く同じ内容のglob.pyを用意し、実行してみた。
すると、下記の通りエラーが発生する。
実行結果
Traceback (most recent call last):
File "<フォルダパス>\glob.py", line 1, in <module>
import glob
^^^^^^^^^^^
File "<フォルダパス>\glob.py", line 2, in <module>
files=glob.glob("*.xlsx")
^^^^^^^^^^^^^^^^^^^
TypeError: 'module' object is not callable
"TypeError"の意味としては、モジュールが呼び出されていないとのこと。
つまりこのコードを「glob.py」という名前で保存してしまうと、インポートをする際に、標準ライブラリのglobではなく、このファイルを呼び出してしまうことになるのだ。
その為、glob関数を使用する際は、ファイル名を「glob.py」以外にすることで正常に実行することができる。