2010-07-08 15 views

Respuesta

48

Muchas de las funciones del directorio de Python se encuentran en el os.path module.

import os 
os.path.isdir(d) 
354
os.path.isfile("bob.txt") # Does bob.txt exist? Is it a file, or a directory? 
os.path.isdir("bob") 
+4

si no está utilizando rutas absolutas, como en el ejemplo , solo verificaría la existencia de "bob" en el directorio de scripts (o donde python se encuentra actualmente en el sistema de archivos) – Matthias

17

Un ejemplo educativo de la stat documentación:

import os, sys 
from stat import * 

def walktree(top, callback): 
    '''recursively descend the directory tree rooted at top, 
     calling the callback function for each regular file''' 

    for f in os.listdir(top): 
     pathname = os.path.join(top, f) 
     mode = os.stat(pathname)[ST_MODE] 
     if S_ISDIR(mode): 
      # It's a directory, recurse into it 
      walktree(pathname, callback) 
     elif S_ISREG(mode): 
      # It's a file, call the callback function 
      callback(pathname) 
     else: 
      # Unknown file type, print a message 
      print 'Skipping %s' % pathname 

def visitfile(file): 
    print 'visiting', file 

if __name__ == '__main__': 
    walktree(sys.argv[1], visitfile) 
+1

No es la solución más bonita, pero si ya tiene una estructura de estadísticas, esto le permite evitar realizar una búsqueda extra de llamadas/discos a través de os.path.isfile o amigos. –

Cuestiones relacionadas