いつもファイルとかディレクトリを列挙しようとするたびにググり続けているので、自分でまとめてみた。
指定したディレクトリのすべてのファイルとディレクトリを列挙
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 件のコメント:
コメントを投稿