2017-10-09 257 views
0

開始我有以下目錄結構:走子目錄Python從子目錄

root 
└── env 
   ├── team_1 
   │   ├── policies 
    │ │ └── file.yaml 
   │   └── roles 
   └── team_2 
    ├── policies 
    └── roles 

,我需要讀取一個團隊目錄下的所有文件,併合並他們創造一個獨特的文件

這是我的嘗試:

env_path = os.path.join('root', env) 

if os.path.exists(env_path): 
    for team_dir in os.listdir(env_path): 
     for root, dirs, files in os.walk(team_dir): 
      print(root, dirs, files) 

的問題是,os.walk當我通過team_dir不返回任何東西。我應該使用os.path.join(env_path, team_dir),但那時它會返回我不想要的整個樹。你怎麼能從os.walk已經subdir子目錄?

回答

1

you have to use os.path.join(env_path, team_dir) or os.walk would not find anything。

但是,如果你不希望所有的層次,只是刪除字符串的開頭:

for team_dir in os.listdir(env_path): 
    for root, dirs, files in os.walk(os.path.join(env_path, team_dir)): 
     for f in files+dirs: 
      print(os.path.join(root,f)[len(env_path)+1:]) # strip start of path + separator