Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/344.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python-忽略列表中的字符串无效_Python - Fatal编程技术网

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