初めての投稿なのでお手柔らかに。;)
問題: os.walk をディレクトリ ウォーカーとして使用できるようにしたいのですが、特定のフォルダには使用できません。元:
木:
\Proj1_0
\Load001
\lib
\src
\Proj2_0
\Load001
\lib
\src
\Load002
\lib
\src
プロジェクトと負荷を表示したいのですが、負荷の下のサブディレクトリは表示したくありません。次のコードを使用してそれを行うことができます。
import os
for root, subFolders, files in os.walk('.'):
# root does NOT contain 'Load'
if root.find('Load') == -1:
print "\nPROJECT: " + root + "\n"
for folder in subFolders:
print " " + folder
ただし、リストは大きなリストであるため、 del を使用してみましたが、正しく機能させることができず、次のようなリストを使用して同じことを行うことができませんでした (これは別の投稿から取得しました)。
def my_walk(top_dir, ignore):
for dirpath, dirnames, filenames in os.walk(top_dir):
dirnames[:] = [
dn for dn in dirnames
if os.path.join(dirpath, dn) not in ignore]
yield dirpath, dirnames, filename
list my_walk('.','Load')
しかし、リターンも正常に動作するようにはなりませんでした。私はPythonが初めてで、助けていただければ幸いです。ありがとう!