¿Cómo verificar si un archivo es un directorio o un archivo normal en Python? [duplicate]

2 minutos de lectura

avatar de usuario
duhhunjonn

¿Cómo verifica si una ruta es un directorio o un archivo en python?

  • si está utilizando la biblioteca pathlib, haga lo siguiente: p.is_file() consulte stackoverflow.com/a/44228884/1601580

    –Charlie Parker

    28 de febrero a las 23:13

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

  • si no está utilizando rutas absolutas, como en el ejemplo, solo verificaría la existencia de “bob” en el directorio del script (o dónde se encuentra Python actualmente en el sistema de archivos)

    – Matías

    21 de junio de 2016 a las 14:08

  • os.path.isfile(“1.mp4”) me da false! ¿Porqué es eso?

    – Jay Patel

    15 de enero de 2019 a las 6:23

  • eso es porque no estás usando la ruta completa allí. usar os.path.isfile("/path/to/1.mp4")

    – Manoj

    29 de enero de 2019 a las 7:32

  • ¿Qué sucede si las rutas de los archivos aún no existen? Ambas funciones devuelven False.

    – cs95

    25 de marzo de 2019 a las 4:14

  • @ cs95, primero tendrá que verificar si el archivo existe y luego verificar si es un directorio. Si un archivo no existe, ¡no puede ser un directorio de todos modos! Estás buscando os.path.exists: docs.python.org/3/library/os.path.html#os.path.exists

    – b4ux1t3

    12 de febrero de 2020 a las 14:06

usar 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 un expediente¿y si la cosa en path es un enlace simbólico?

    – Alex

    15 de agosto de 2017 a las 18:19


  • Esto no parece funcionar con los descriptores de archivos cuando se utiliza la sustitución de procesos.

    – CMC Dragonkai

    30 de mayo de 2018 a las 5:26

  • si está utilizando la biblioteca pathlib, haga lo siguiente: p.is_file() consulte stackoverflow.com/a/44228884/1601580

    –Charlie Parker

    28 de febrero a las 23:13

Muchas de las funciones de directorio de Python están en el os.path módulo.

import os
os.path.isdir(d)

  • si está utilizando la biblioteca pathlib, haga lo siguiente: p.is_file() consulte stackoverflow.com/a/44228884/1601580

    –Charlie Parker

    28 de febrero a las 23:14

avatar de usuario
YuppieRedes

Un ejemplo educativo de la estadística 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)

¿Ha sido útil esta solución?

Esta web utiliza cookies propias y de terceros para su correcto funcionamiento y para fines analíticos y para mostrarte publicidad relacionada con sus preferencias en base a un perfil elaborado a partir de tus hábitos de navegación. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos. Configurar y más información
Privacidad