2016-03-29 7 views
0

現在の作業ディレクトリのサブフォルダを取得する必要があります。私のcwdのサブフォルダのみをPythonで入手する方法

私はosモジュールを試して、treeコマンドを見つけました。私は、サブフォルダをサブサブサブフォルダではなく、サブフォルダ内にあるものにする必要があります。ここで

は、私が現在得たものである:

import os 

cwd = os.getcwd() 
dirctorys = os.tree(cwd) 

私は私のツリーを印刷するforループを作成したが、これは、それはコンテンツだを含むすべてのサブフォルダ、を印刷します。しかし、私はサブフォルダだけが必要です。例えば

これらは私のdirectorysは以下のとおりです。

root/me/cwd 
     |-__init__.py 
     |-mygeo.py 
     |-subfolder1 
     | |-file1.py 
     | |-file2.py 
     |-subfolder2 
     | |-file3.py 
     | |-subsubfolder 
     | | |-foo.py 
     | | |-foo2.py 

は、私はPythonはそれでこれを持つタプルやリストを返したい:私はos.tree(cwd)の出力を解析してきた

['__init__.py', 'mygeo.py', 'subfolder1', 'subfolder2'] 

のときIそれを印刷し、それがリストから作られていることを発見した。最初のリストはまさに私が必要としているようですが、どうやって入手するのか分かりません。

このようなリストを取得するにはどうすればよいですか?

+4

は 'os'モジュールは'ツリーを() '属性を持っていますか? – Ren

+0

私はそれを持っていて、ディレクトリ内のすべてのものを私に与えます。 –

+1

@h_e_u_r_e_k_a:それはありません。 ['os.walk'](https://docs.python.org/3/library/os.html#os.walk)がありますが、あなたが表示している出力は* NIX [ツリーユーティリティ(http://linux.die.net/man/1/tree)が印刷します。 – ShadowRanger

答えて

2

あなたはos.listdir()を使用することができます。

import os 

cwd = os.getcwd() 
contents = os.listdir(cwd) 

あなたは、ディレクトリからファイルを分割したい場合:

import os 

cwd = os.getcwd() 
_, files, directories = next(os.walk(cwd)) 
+0

それはそうです、ありがとう! –

+0

これはPython 3であるため、実際に3.5以上であれば、['os.scandir'](https://docs.python.org/3/library/os.html#os.scandir)は与えられたパスのディレクトリをもっと簡単かつ迅速に得ることを容易にします: 'ディレクトリ= [エントリ.is_dir()]の場合はos.scandir()のエントリのためのエントリ。 – ShadowRanger

+0

それははるかに複雑です! –

関連する問題