Python-忽略列表中的字符串无效
编写以下代码以基于忽略列表选择目录:Python-忽略列表中的字符串无效,python,Python,编写以下代码以基于忽略列表选择目录: 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):
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文件夹的所有子目录您需要在
路径
上应用您的标准,而不仅仅是目录
:
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
当您在ignoreList变量中输入“help”时,输出是什么?是否
目录
仅指最后一个斜杠后面的内容?所以在c:\Windows\help\mui\0409
中,目录实际上是'0409'
。。检查that@OmarEinea就像that@AjayGupta是的,这就是问题所在,正如下面的答案所描述的一样@OmarEinea