编写下面的代码以基于“忽略”列表选择目录:
mypath = 'c:\\Windows\\help'
ignorelist = ['mui', 'en-US']
for root, directories, filenames in walk(mypath):
for directory in directories :
if not any(ignorestring in directory for ignorestring in ignorelist):
print(join(root,directory))
当ignorelist变量列表为空时,输出如下:
c:\Windows\help\Corporate
c:\Windows\help\Help
c:\Windows\help\mui
c:\Windows\help\OEM
c:\Windows\help\Windows
c:\Windows\help\Help\en-US
c:\Windows\help\mui\0409
c:\Windows\help\Windows\en-US
在忽略列表中带有['mui','en-US']的输出为:
c:\Windows\help\Corporate
c:\Windows\help\Help
c:\Windows\help\OEM
c:\Windows\help\Windows
c:\Windows\help\mui\0409
即使mui在忽略列表中,“ c:\ Windows \ help \ mui \ 0409”也不会被忽略。
请说明为什么会这样以及如何忽略mui文件夹的所有子目录
您需要应用标准,path
而不仅仅是directory
:
from os.path import join
from os import walk
mypath = 'c:\\Windows\\help'
ignorelist = ['mui', 'en-US']
for root, directories, filenames in walk(mypath):
for directory in directories:
path = join(root, directory)
if not any(ignorestring in path for ignorestring in ignorelist):
print(path)
c:\Windows\help\Corporate
c:\Windows\help\Help
c:\Windows\help\OEM
c:\Windows\help\Windows
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句