1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

pythonで同一ディレクトリ内のファイルのリストを取得する方法

Last updated at Posted at 2020-09-05

同一ディレクトリ内にあるファイルのリストの取得には、__globモジュール__が便利です。
#glob モジュールの使用例

下記のファイルが保存されているディレクトリで、globを動かしてみます。
 data1.txt, data10.txt, data2.txt, data3.dat, data99.txt, result1.txt, result2.dat

######・ワイルドーカードを用いる
以下の処理で、同一ディレクトリ内にあるすべてのファイルのリストを取得できます。

import glob

filelist=glob.glob('*')
print(filelist)

実行結果

['data1.txt', 'data10.txt', 'data2.txt', 'data3.dat', 'data99.txt', 'result1.txt', 'result2.dat']

ワイルドカード'*'を用いれば、特定の条件を満たすファイル名のみをリストアップできます。以下の例では、ファイル名が'data'ではじまるもの、拡張子が'.txt'であるものをそれぞれリストアップしています。

filelist=glob.glob('data*') #'data'ではじまるファイル名をすべてリストアップ
print(filelist)
filelist=glob.glob('*.txt') #'.txt'で終わるファイル名をすべてリストアップ
print(filelist)

実行結果

['data1.txt', 'data10.txt', 'data2.txt', 'data3.dat', 'data99.txt']
['data1.txt', 'data10.txt', 'data2.txt', 'data99.txt', 'result1.txt']

######・'?'を用いる
ワイルドカード部分の文字数を指定したい場合は、'*'の代わりに'?'を用います。'?'は、指定したい文字数の分だけつなげます。以下の例では、'data'と'.txt'の間に任意の2文字が入っているファイルをリストアップできます。

filelist=glob.glob('data??.txt') #'data'と'.txt'の間に任意の2文字が入るファイルをすべてリストアップ
print(filelist)

実行結果

['data10.txt', 'data99.txt']

######・[ ] を用いる
[ ]を用いることもできます。この場合、[ ]で囲んだ部分が、[ ]内の英数字のどれか1文字に合致するファイルがリストアップされます。

filelist=glob.glob('data[0-9].txt') #[0-9]の部分に0~9のいずれかの数字が入るものをすべてリストアップ
print(filelist)

実行結果

['data1.txt', 'data2.txt']
1
2
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
1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?