os.walk 忽略目录及其内容

os.walk ignore directorys and its content

我正在尝试忽略特定路径中的某些目录及其中的文件,这是我的代码

    x = open(wbCMD, 'a')
x.write('set path="C:\Program Files\WinRAR\";%path% c:/Program Files/WinRAR/\n')
x.write('Rar.exe a -r "Backup.rar" -m5 -ep1')
chkdict = {}
setdef = chkdict.setdefault
for root, dirs, files in os.walk(foldername):
    if ignoreddirs in dirs:
        continue
    for file in files:
        ext = path.splitext(file)[1]
        if ext in ignored:
            continue
        if not ext in chkdict:
            print("%s" % setdef(ext,ext))
            x.write(" *%s" % setdef(ext,ext))
x.write(" *makefile *Depend *readme\npause")
x.close
del chkdict

ignoreddirs 数组看起来像这样

ignoreddirs = ["bin"]

dirsignoreddirs 都是字符串列表。因此,dirs不包含ignoreddirs。但是,它可能包含它的某些元素。检查这一点的一种方法是检查它们的交集:

if len(set(ignoreddirs).intersection(set(dirs))) > 0:
    continue