pyGTK で階層ディレクトリ リストを生成しようとしています。
現在、次のディレクトリ ツリーがあります。
/root
folderA
- subdirA
- subA.py
- a.py
folderB
- b.py
私は-ほとんど-動作するように見える関数を書きました:
def go(root, piter=None):
for filename in os.listdir(root):
isdir = os.path.isdir(os.path.join(root, filename))
piter = self.treestore.append(piter, [filename])
if isdir == True:
go(os.path.join(root, filename), piter)
これは、アプリを実行すると得られるものです。
また、私の関数は非効率的であり、os.walk() を使用する必要があると思います。そのような目的のために既に存在しているためです。
pyGTK を使用してディレクトリ ツリーを生成する適切な/最も効率的な方法は何ですか?
---編集---- 私が最終的に使用したコードのブロックは、次のとおりです。
parents = {}
for dir, dirs, files in os.walk(root):
for subdir in dirs:
parents[os.path.join(dir, subdir)] = self.treestore.append(parents.get(dir, None), [subdir])
for item in files:
self.treestore.append(parents.get(dir, None), [item])