2017-10-09 450 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