0

ディレクトリ ツリーをたどって、特定のディレクトリを除外しようとしています。ここで、たとえばos.walk exclude .svn フォルダーによると、「dirs」リストを変更できるはずです。これにより、ツリーを剪定できます。私は次のことを試しました:

import sys
import os

if __name__ == "__main__":

    for root, dirs, files in os.walk("/usr/lib"):
        print root
        dirs = []

サブディレクトリに入らないことを期待していましたが、そうします:

/usr/lib
/usr/lib/akonadi
/usr/lib/akonadi/contact
/usr/lib/akonadi/contact/editorpageplugins
/usr/lib/os-prober
/usr/lib/gnome-settings-daemon-3.0
/usr/lib/gnome-settings-daemon-3.0/gtk-modules
/usr/lib/git-core
/usr/lib/git-core/mergetools
/usr/lib/gold-ld
/usr/lib/webkitgtk-3.0-0
/usr/lib/webkitgtk-3.0-0/libexec

私は何が欠けていますか?

4

3 に答える 3

2
dirs = []

ローカル名を再バインドしdirsます。代わりにリストの内容を変更できます。このような:

dirs[:] = []
于 2013-06-26T09:50:06.903 に答える
0

root開始した場所からのルートだけでなく、パス全体を提供します。

ドキュメントは、それが何をしているのかをもう少し明確にします:

for dirpath, dirnames, filenames in os.walk('/usr/lib'):
    print dirpath

こちらのドキュメントをご覧ください

于 2013-06-26T09:46:46.997 に答える