Removendo com eficiência subdiretórios em dirnames do os.walk

Em um mac em python 2.7 ao percorrer diretórios usando os.walk meu script passa por 'apps' ou seja, appname.app, já que esses são realmente apenas diretórios de si mesmos. Bem mais tarde, no processamento, estou atingindo erros ao passar por eles. Eu não quero passar por eles de qualquer maneira, então, para os meus propósitos, seria melhor simplesmente ignorar esses tipos de 'diretórios'.

Então esta é a minha solução atual:

for root, subdirs, files in os.walk(directory, True):
    for subdir in subdirs:
        if '.' in subdir:
            subdirs.remove(subdir)
    #do more stuff

Como você pode ver, o segundo loop for executado para cada iteração de subdiretórios, o que é desnecessário, já que o primeiro passo remove tudo o que eu quero remover de qualquer maneira.

Deve haver uma maneira mais eficiente de fazer isso. Alguma ideia?