Python忽略列表中的字符串不起作用

2024-04-25 22:34:45 发布

您现在位置: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):
            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

“c:\Windows\help\mui\0409”即使mui在忽略列表中也不会被忽略。你知道吗

请澄清为什么会发生这种情况,以及如何忽略mui文件夹的所有子目录


Tags: in列表forwindowshelprootdirectoryen
1条回答
网友
1楼 · 发布于 2024-04-25 22:34:45

您需要在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

相关问题 更多 >

    热门问题