Cómo identificar si un archivo es un archivo o directorio normal usando Python


129

¿Cómo se verifica si un archivo es un archivo normal o un directorio usando Python?

Respuestas:



36

Como han dicho otras respuestas, os.path.isdir()y os.path.isfile()son lo que quieres. Sin embargo, debe tener en cuenta que estos no son los únicos dos casos. Uso os.path.islink()para enlaces simbólicos, por ejemplo. Además, todos estos regresan Falsesi el archivo no existe, por lo que probablemente también desee consultarlo os.path.exists().


10

Python 3.4 introdujo el pathlibmódulo en la biblioteca estándar, que proporciona un enfoque orientado a objetos para manejar las rutas del sistema de archivos. Los métodos relevantes serían .is_file()y .is_dir():

In [1]: from pathlib import Path

In [2]: p = Path('/usr')

In [3]: p.is_file()
Out[3]: False

In [4]: p.is_dir()
Out[4]: True

In [5]: q = p / 'bin' / 'vim'

In [6]: q.is_file()
Out[6]: True

In [7]: q.is_dir()
Out[7]: False

Pathlib también está disponible en Python 2.7 a través del módulo pathlib2 en PyPi.



2

os.path.isdir('string')
os.path.isfile('string')


2

prueba esto:

import os.path
if os.path.isdir("path/to/your/file"):
    print "it's a directory"
else:
    print "it's a file"

-1

Si solo está recorriendo un conjunto de directorios, podría ser mejor simplemente intentar os.chdirdar un error / advertencia si falla:

import os,sys
for DirName in sys.argv[1:]:
    SaveDir = os.getcwd()
    try:
        os.chdir(DirName)
        print "Changed to "+DirName
        # Do some stuff here in the directory
        os.chdir(SaveDir)
    except:
        sys.stderr.write("%s: WARNING: Cannot change to %s\n" % (sys.argv[0],DirName))
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.