スポンサーリンク

【Python】globの使い方。指定したフォルダ内のファイル名一覧を取得する

スポンサーリンク
スポンサーリンク
この記事は約5分で読めます。

この記事ではglobを使って指定したフォルダ内のファイル名一覧を取得する方法を整理します。

 

ファイル名一覧を取得する

 

フォルダ内の全ファイル名を取得

 

“file_list = glob.glob(folder_path + “\*”)”

この中で”\*”としている部分について(コード内ではバックスラッシュ)、”\”はフォルダパスの区切りを示しており、ファイル全てを指定しているのは”*”のみ

 

以下のような書き方もできる

 

“file_list = glob.glob(“*”)”では現在のフォルダ内のファイル名一覧を取得している。

” * “は1文字以上の文字を含むファイル全てを指す。

つまるところ全ファイルを取得する 。

 

Excelファイルを指定して全ファイル名を取得

 

 

以下のようにも書くことができる

 

“file_list = glob.glob(“*.xlsx”)”では、現在のフォルダ内で、任意の1文字以上の名前があり、また” .xlsx “が末尾につくファイル名の一覧を取得している。

“*”が任意の1文字以上のファイル名を持つことを指定し、” .xlsx “で拡張子(ファイルの種類)を指定している。

 

拡張子 ” .xlsx “ではなく ” .docs”とすることでWordや、” .ppt “とすることでパワーポイントのファイルも指定することができる。

 

 

一時ファイル(~$)を除いてファイル名一覧を取得

 

隠しファイルで先頭に”~$・・・.xlsx”とファイルが存在している場合がある。

これはExcelやWordを開いていることを示す一時ファイル。

開いていたExcelやWordを閉じると、このファイルも消えてしまう。

指定したフォルダ内の全ファイル内を別のフォルダに移動させる操作をする時に、途中でファイルが閉じられるなどでこの一時ファイルが消えると、エラーが発生することになる。

 

※以下画像の右端のファイル:”~$a.xlsx”

一時ファイル(~$)を含むファイル名一覧の画像

 

 

“~$”が先頭についているファイルは、ExcelやWordを開いていることを示す一時ファイル。隠しファイルなので、Windowsのエクスプローラーではデフォルトでは確認できない。フォルダ上部にある「表示」タブ→「表示」→「隠しファイル」と選択して、非表示になっている隠しファイルを表示させることで確認できる場合がある。

隠しファイルを表示させる設定画面

 

 

特殊文字を用いて条件に合うファイル名一覧を取得

globモジュールでは、正規表現のパターンマッチングと同じように条件に合うファイルだけを取得することができる。そのための特殊文字は以下の通り。

 

“*”

任意の文字列を含むファイル名を指す。

例:”1.docs”、”a.txt”、”123.xlsx”、”abc.ppt”

 

“?”

1文字の任意の文字を含むファイル名を指す。

例:”1.docs”、”a.txt”

 

“[]”

ファイル名の先頭に、”[]”のどれか1文字を持つファイル名を指す。

例1:”[123].xlsx”の場合、先頭に1,2,3のどれかを持つファイル

→”1.xlsx”, “2.xlsx”, “3.xlsx”

 

例2:”[123]*”の場合、先頭に1,2,3のどれかがあり、さらに2文字目以降に0文字以上の任意の文字列を持つファイル

→”1xyz.xlsx”, “2.docs”, “309あいうえお.ppt”

 

※逆に2文字目以降に1,2,3のどれかがあっても取得することはできない

 

“[!文字列]”

ファイル名の先頭に、”[!・・・]”の”・・・”で指定した文字列を全て持たないファイルを指す。

ファイルが以下の一覧とする

“1.xlsx,”, “a.xlsx”, “1a.xlsx”, “a1.xlsx”, “b.docs”, “c.txt”, “d.pub”, “e.ppt”

 

例1:”[!abc].xlsx”:ファイル名の先頭にa,b,cのいずれも持たない.xlsxファイル全てを指す。

→”1.xlsx”

※これ以外はa,b,cの文字を含むので取得されない。

 

例2:[!abc]*:ファイル名の先頭にa,b,cのいずれも持たず、0文字以上の任意の文字列を持つファイル全て

‘1.xlsx’,  ‘1a.xlsx’,  ‘d.pub’,  ‘e.pptx’

※1文字目にa,b,cがない全てのファイル

 

例3:”[!123].xlsx”:ファイル名の先頭に1,2,3のいずれも持たずない.xlsxファイル全て

→”a.xlsx”

※.xlsxファイルの内、先頭に1,2,3のどれも持たないファイルは”a.xlsx”のみ

コメント