LoginSignup
0
0

glob関数が実装されないときの対処法(頻度極少)

Posted at

pythonを使用してExcelの自動処理について勉強している中、
glob関数を使用するときに躓いた箇所があったため、備忘録として残しておく

glob関数とは

ディレクトリに格納されたファイル名を抽出する関数
引数に抽出条件を指定することができる。


globフォルダ内のファイル
image.png

この中から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」以外にすることで正常に実行することができる。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0