Python 使用os.path.exists和assert检查除定义的列表外是否存在其他文件夹
例如,我的文件夹结构是:Python 使用os.path.exists和assert检查除定义的列表外是否存在其他文件夹,python,Python,例如,我的文件夹结构是: original/dev original/prd (请注意,dev和prd是文件夹而不是文件) 我想检查原始文件夹中是否有我想要的开发和prd文件夹之外的其他内容。我的问题是这个不需要的文件夹可能有任何名称 我对第一部分的想法是: assert os.path.exists(os.path.join('tests','testvars','dev')) # it works assert os.path.exists(os.path.join('tests','t
original/dev
original/prd
dev
和prd
是文件夹而不是文件)
我想检查原始
文件夹中是否有我想要的开发
和prd
文件夹之外的其他内容。我的问题是这个不需要的文件夹可能有任何名称
我对第一部分的想法是:
assert os.path.exists(os.path.join('tests','testvars','dev')) # it works
assert os.path.exists(os.path.join('tests','testvars','prod')) # it works
正如您所注意到的,最后一部分将抛出一个断言错误,其他文件夹(除了
prd
和dev
)也存在。您应该这样做:
import os
other_dir = [x for x in os.listdir(path) if x != 'dev' and x!='prd']
这样,您将得到除
dev
和prod
之外的所有其他目录内容的列表。您只需执行以下操作:
import os
other_dir = [x for x in os.listdir(path) if x != 'dev' and x!='prd']
这样,您将得到除
dev
和prod
之外的所有其他目录内容的列表。这是否回答了您的问题?为什么断言os.path.exists(os.path.join('tests'、'testvars'、'dev'))
如果不包含原始组件,那么它会起作用我的建议和@RandomDavis一样……你应该在original
目录中列出所有内容,反复浏览该列表,如果你得到的不是dev
和prd
,那么做任何适当的事情。这是否回答了你的问题?为什么断言os.path.exists(os.path.join('tests'、'testvars'、'dev'))
如果不包含原始组件,那么它会起作用我的建议与@RandomDavis相同……你应该在原始
目录中列出所有内容,迭代该列表,如果你得到的不是dev
和prd
,那么做任何适当的事情。根据这个答案和我使用assert的需要,我最终使用了''''assert len'([x代表os.listdir中的x(路径),如果x!='dev'和x!='prd'])==0''。如果除“dev”和“prd”之外还有其他文件夹,这将引发断言错误。根据这个答案和我使用断言的需要,我最终使用了''''断言len([x代表os.listdir中的x(路径),如果x!='dev'和x!='prd'])==0''。如果除“dev”和“prd”之外还有其他文件夹,这将引发断言错误。