todos - Cómo identificar si un archivo es un archivo o directorio normal usando Python
python directorio actual (7)
¿Cómo se comprueba si un archivo es un archivo normal o un directorio que utiliza Python?
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 dos únicos casos. Utilice os.path.islink()
para enlaces simbólicos, por ejemplo. Además, todos estos devuelven False
si el archivo no existe, por lo que es probable que también desee consultar con os.path.exists()
.
Python 3.4 introdujo el módulo pathlib
en la biblioteca estándar, que proporciona un enfoque orientado a objetos para manejar las rutas del sistema de archivos. Los métodos .is_file()
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.
Si solo está recorriendo un conjunto de directorios, es mejor que pruebe os.chdir
y proporcione 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))
prueba esto:
import os.path
if os.path.isdir("path/to/your/file"):
print "it''s a directory"
else:
print "it''s a file"
os.path.isdir()
y os.path.isfile()
deberían darle lo que desea. Ver: http://docs.python.org/library/os.path.html
os.path.isdir(''string'')
os.path.isfile(''string'')
import os
if os.path.isdir(d):
print "dir"
else:
print "file"