0

「アイテム」リストにサブディレクトリを追加しようとしており、以下のコードでこれを達成することにしました。

root, dirs, files = iter(os.walk(PATH_TO_DIRECTORY)).next()
items = [{
     'label': directory, 'path': plugin.url_for('test')
} for count, directory in enumerate(dirs)]

上記は機能しますが、驚くほど遅いです。os.walk は非常に高速ですが、何らかの理由でループが遅いです。

以下のように、os.walk中に「アイテム」リストに追加して、すべてを一度に実行しようとしました

for root, dirs, files in os.walk(PATH_TO_DIRECTORY):

しかし、ディレクトリをリストに追加するための正しい構文を完全に取得できませんでした。

私がオンラインで見つけることができる os.walk のすべての例はprint、dirs または files を単純に実行したものであり、その使用例としては問題ありませんが、現実の世界ではあまり役に立ちません。

私はPythonが初めてで、今日見始めたばかりです。私の最初の例のように、別のループなしでリストを取得する方法をアドバイスしてもらえますか?

(私はそれがリストではなくPythonで「ディレクトリ」または何かと呼ばれていることを認識しています。それを単に配列と呼んでそれで終わりましょう... :-)

ありがとう

4

2 に答える 2