2009-04-08 7 views

答えて

5

あり唯一のリストファイルへの組み込み関数ではありませんが、それは数行で定義するのは簡単です:

def listfiles(directory): 
    return [f for f in os.listdir(directory) 
       if os.path.isdir(os.path.join(directory, f))] 

EDIT:固定、感謝Stephan202

+0

os.path.isfile(f)...の代わりにos.path.isdir(os.path.join(directory、f))を意味します... – Stephan202

+0

質問はディレクトリだけを見つけることでした。ファイルのみ(これは奇妙な方法ですが、私は推測します) – dbr

3

a_directoryた場合は、その後、あなたが点検したいディレクトリです:

next(f 1 for f in os.walk(a_directory))

参照から:

ツリーを歩いて、ディレクトリツリー内のファイル名を生成しますトップダウンまたはボトムアップのいずれかです。ディレクトリtop(ルート自体を含む)をルートとするツリー内の各ディレクトリについて、3タプル(dirpath、dirnames、ファイル名)を生成します。

+0

1:しかし、あなたが望むかもしれません中断し、再帰的にサブディレクトリに降下しません。個人的には、os.listdirとos.isdirを明示的に呼び出すことをお勧めします。 – Pankrat

+0

コードが変更された場合。これは繰り返されません... – Stephan202

1

私は存在するとは思わない。ディレクトリもファイルであるため、すべてのファイルを尋ねてから、それがディレクトリであるかどうかそれぞれに尋ねなければなりません。

0
def listdirs(path): 
    ret = [] 
    for cur_name in os.listdir(path): 
     full_path = os.path.join(path, cur_name) 
     if os.path.isdir(full_path): 
      ret.append(cur_name) 
    return ret 

onlydirs = listdir("/tmp/") 
print onlydirs 
リスト内包表記など

..or ..

path = "/tmp/" 
onlydirs = [x for x in os.listdir(path) if os.path.isdir(os.path.join(path, x))] 
print onlydirs 
関連する問題