我有以下目录结构:
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
已经是一个子目录的子目录中退出来?
答案 0 :(得分:1)
您 使用os.path.join(env_path, team_dir)
或os.walk
无法找到任何内容。
但是如果你不想要所有的层次结构,只需删除字符串的开头:
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