Duplicar posible:
How to identify whether a file is normal file or directory using pythoncómo comprobar si un archivo es un directorio o un archivo normal en python?
¿Cómo comprobar si un camino es un directorio o un archivo en Python?
Duplicar posible:
How to identify whether a file is normal file or directory using pythoncómo comprobar si un archivo es un directorio o un archivo normal en python?
¿Cómo comprobar si un camino es un directorio o un archivo en Python?
Muchas de las funciones del directorio de Python se encuentran en el os.path
module.
import os
os.path.isdir(d)
os.path.isfile("bob.txt") # Does bob.txt exist? Is it a file, or a directory?
os.path.isdir("bob")
uso os.path.isdir(path)
más información aquí http://docs.python.org/library/os.path.html
Si uso esto para determinar si algo es * file *, ¿qué pasa si la cosa en 'path' es un enlace simbólico? – alex
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)
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. –
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