2012年5月11日金曜日

pythonでファイルやディレクトリを列挙 まとめ

いつもファイルとかディレクトリを列挙しようとするたびにググり続けているので、自分でまとめてみた。


指定したディレクトリのすべてのファイルとディレクトリを列挙

import os

for onlyFilename in os.listdir("mydir"):
    print onlyFilename

--------------------
'dir1'
'dir2'
'file1.txt'
'file2.txt'
'file2.py'
常にファイル、ディレクトリ名だけを返します。

特定の拡張子のファイルだけを列挙

import glob

for filenameWithPathAsString in glob.glob("mytexts/*.txt"):
    print absFilePathAsString

--------------------
'mytexts/hoge.txt'
'mytexts/wahoo.txt'
...

出力には、指定したPathも付けられています

ディレクトリのみを列挙

import glob
import os
import os.path

for filename in glob.glob("mydir/*"):
    if os.path.isdir(filename):
        print filename

--------------------
'mydir/dir1'
'mydir/dir2'
...



再帰的に全てのファイル、ディレクトリを列挙

for path,dirs,files in os.walk("mydir"):
  print path,dirs,files
深さ優先でディレクトリを掘って行きます。 例
"." -> "./dir1" -> "./dir1/hoge" -> "./dir2" -> "./dir2/hoge"

0 件のコメント:

コメントを投稿