¿Cómo se verifica si un archivo es un archivo normal o un directorio usando Python?
os.path.isdir()
y os.path.isfile()
debería darte lo que quieres. Ver:
http://docs.python.org/library/os.path.html
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 False
si el archivo no existe, por lo que probablemente también desee consultarlo os.path.exists()
.
Python 3.4 introdujo el pathlib
mó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.
import os
if os.path.isdir(d):
print "dir"
else:
print "file"
os.path.isdir('string')
os.path.isfile('string')
prueba esto:
import os.path
if os.path.isdir("path/to/your/file"):
print "it's a directory"
else:
print "it's a file"
Si solo está recorriendo un conjunto de directorios, podría ser mejor simplemente intentar os.chdir
dar 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))