我有一些目录坐在
/home/ubuntu/ansible-environments/aws
其中有许多子目录遵循以下约定:
/home/ubuntu/ansible-environments/aws/random_name1/inventory/group_vars/all
/home/ubuntu/ansible-environments/aws/random_name2/inventory/group_vars/all
/home/ubuntu/ansible-environments/aws/random_name3/inventory/group_vars/all
/home/ubuntu/ansible-environments/aws/random_name4/inventory/group_vars/all
/home/ubuntu/ansible-environments/aws/random_name5/inventory/group_vars/all
/home/ubuntu/ansible-environments/aws/TERMINATED_random_name1/inventory/group_vars/all
现在下面的代码能够获取上面文件夹中的所有目录,但是我想跳过TERMINATED部分,我该怎么办?
outer_dir=os.path.expanduser("/home/ubuntu/ansible-environments/aws")
print (outer_dir)
random_names = os.listdir(outer_dir)
print (random_names)
inner_dirs = [
os.path.join(outer_dir, name, "inventory/group_vars")
for name in random_names
]
#print (inner_dirs)
# Now filter it to those directories that actually exist
inner_dirs = [name for name in inner_dirs if os.path.isdir(name)]
答案 0 :(得分:1)
您可以在创建inner_dirs
列表时将其过滤掉:
inner_dirs = [
os.path.join(outer_dir, name, "inventory/group_vars")
for name in random_names
if name[:10] != "TERMINATED"
]
答案 1 :(得分:0)
Pythonic的方式是:
if not name.startswith("TERMINATED")