14
13

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 5 years have passed since last update.

globを使ったフォルダ内のファイルネームの取得

Posted at

フォルダ内のファイル名を簡単に取得したい時によく使います。
ソースはこちらhttp://svn.python.org/view/python/branches/release27-maint/Lib/glob.py?view=markup
下記のようなフォルダがあったとすると、

terminal.
$ ls
0.csv		2.txt		5.csv		7.txt		test_glob.py
0.txt		3.csv		5.txt		8.csv
1.csv		3.txt		6.csv		8.txt
1.txt		4.csv		6.txt		9.csv
2.csv		4.txt		7.csv		9.txt

######サンプル

test_glob.py
   import glob
   text_fnames = glob.glob('./*.txt')
   print text_fnames

######実行

output.
$ python test_glob.py 
['./0.txt', './1.txt', './2.txt', './3.txt', './4.txt', './5.txt', './6.txt', './7.txt', './8.txt', './9.txt']

このように、*.txtとすることでファイル内のtxtファイルを簡単に取得できます。
######解説
glob.globの引数は文字列で、書き方はシェルと一緒です。
引数には、相対パス、絶対パスの両方が使えます。

また、glob.globglob.iglobとすれば、イテレータがかえってきます。
ファイルの数が膨大になる時以外は、glob.globのみで足りると思います。

ソースの中身的には、glob.iglobyeildで一つづつファイルネームを生み出してる。
glob.glob(pathname)はただ単にlist(glob.iglob(pathname) )としてる感じです。
あとは、osモジュールを使って、検索するだけの簡単なコードになっています。

14
13
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
14
13

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?