Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

262
Vistas
Cómo encontrar si existe un directorio en Python

En el módulo os en Python, ¿hay alguna manera de encontrar si existe un directorio, algo como:

 >>> os.direxists(os.path.join(os.getcwd()), 'new_folder')) # in pseudocode True/False
over 4 years ago · Santiago Trujillo
14 Respuestas
Responde la pregunta

0

Sí, use os.path.exists() .

over 4 years ago · Santiago Trujillo Denunciar

0

Está buscando os.path.isdir u os.path.exists si no le importa si es un archivo o un directorio:

 >>> import os >>> os.path.isdir('new_folder') True >>> os.path.exists(os.path.join(os.getcwd(), 'new_folder', 'file.txt')) False

Alternativamente, puede usar pathlib :

 >>> from pathlib import Path >>> Path('new_folder').is_dir() True >>> (Path.cwd() / 'new_folder' / 'file.txt').exists() False
over 4 years ago · Santiago Trujillo Denunciar

0

Como en:

 In [3]: os.path.exists('/d/temp') Out[3]: True

Probablemente agregue un os.path.isdir(...) para estar seguro.

over 4 years ago · Santiago Trujillo Denunciar

0

¡Tan cerca! os.path.isdir devuelve True si pasa el nombre de un directorio que existe actualmente. Si no existe o no es un directorio, devuelve False .

over 4 years ago · Santiago Trujillo Denunciar

0

Sí, use os.path.isdir (ruta)

over 4 years ago · Santiago Trujillo Denunciar

0

os le proporciona muchas de estas capacidades:

 import os os.path.isdir(dir_in) #True/False: check if this is a directory os.listdir(dir_in) #gets you a list of all files and directories under dir_in

listdir lanzará una excepción si la ruta de entrada no es válida.

over 4 years ago · Santiago Trujillo Denunciar

0

Solo para proporcionar la versión os.stat (python 2):

 import os, stat, errno def CheckIsDir(directory): try: return stat.S_ISDIR(os.stat(directory).st_mode) except OSError, e: if e.errno == errno.ENOENT: return False raise
over 4 years ago · Santiago Trujillo Denunciar

0

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 is_dir() y exist( exists() de un objeto Path se pueden usar para responder la pregunta:

 In [1]: from pathlib import Path In [2]: p = Path('/usr') In [3]: p.exists() Out[3]: True In [4]: p.is_dir() Out[4]: True

Las rutas (y las cadenas) se pueden unir con el operador / :

 In [5]: q = p / 'bin' / 'vim' In [6]: q Out[6]: PosixPath('/usr/bin/vim') In [7]: q.exists() Out[7]: True In [8]: q.is_dir() Out[8]: False

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

over 4 years ago · Santiago Trujillo Denunciar

0

#You can also check it get help for you if not os.path.isdir('mydir'): print('new directry has been created') os.system('mkdir mydir')
over 4 years ago · Santiago Trujillo Denunciar

0

Podemos verificar con 2 funciones integradas

 os.path.isdir("directory")

Dará booleano verdadero el directorio especificado está disponible.

 os.path.exists("directoryorfile")

Dará boolead verdadero si el directorio o archivo especificado está disponible.

Para verificar si la ruta es un directorio;

os.path.isdir("directorypath")

dará verdadero booleano si la ruta es directorio

over 4 years ago · Santiago Trujillo Denunciar

0

Hay un módulo Unipath conveniente.

 >>> from unipath import Path >>> >>> Path('/var/log').exists() True >>> Path('/var/log').isdir() True

Otras cosas relacionadas que podrías necesitar:

 >>> Path('/var/log/system.log').parent Path('/var/log') >>> Path('/var/log/system.log').ancestor(2) Path('/var') >>> Path('/var/log/system.log').listdir() [Path('/var/foo'), Path('/var/bar')] >>> (Path('/var/log') + '/system.log').isfile() True

Puedes instalarlo usando pip:

 $ pip3 install unipath

Es similar al pathlib . La diferencia es que trata cada ruta como una cadena ( Path es una subclase de str ), por lo que si alguna función espera una cadena, puede pasarla fácilmente como un objeto Path sin necesidad de convertirlo en una cadena.

Por ejemplo, esto funciona muy bien con Django y settings.py :

 # settings.py BASE_DIR = Path(__file__).ancestor(2) STATIC_ROOT = BASE_DIR + '/tmp/static'
over 4 years ago · Santiago Trujillo Denunciar

0

También es posible que desee crear el directorio si no está allí.

Fuente , si todavía está allí en SO.

================================================== ===================

En Python ≥ 3.5, use pathlib.Path.mkdir :

 from pathlib import Path Path("/my/directory").mkdir(parents=True, exist_ok=True)

Para versiones anteriores de Python, veo dos respuestas con buenas cualidades, cada una con un pequeño defecto, así que daré mi opinión:

Pruebe os.path.exists y considere os.makedirs para la creación.

 import os if not os.path.exists(directory): os.makedirs(directory)

Como se señaló en los comentarios y en otros lugares, hay una condición de carrera: si el directorio se crea entre las llamadas os.path.exists y os.makedirs , os.makedirs fallará con un OSError . Desafortunadamente, la captura general de OSError y la continuación no son infalibles, ya que ignorarán una falla al crear el directorio debido a otros factores, como permisos insuficientes, disco lleno, etc.

Una opción sería atrapar el OSError y examinar el código de error incrustado (consulte ¿Existe una forma multiplataforma de obtener información del OSError de Python ):

 import os, errno try: os.makedirs(directory) except OSError as e: if e.errno != errno.EEXIST: raise

Alternativamente, podría haber un segundo os.path.exists , pero supongamos que otro creó el directorio después de la primera verificación y luego lo eliminó antes de la segunda; aún podríamos ser engañados.

Dependiendo de la aplicación, el peligro de las operaciones simultáneas puede ser mayor o menor que el peligro que representan otros factores, como los permisos de archivo. El desarrollador tendría que saber más sobre la aplicación en particular que se está desarrollando y su entorno esperado antes de elegir una implementación.

Las versiones modernas de Python mejoran bastante este código, tanto al exponer FileExistsError (en 3.3+)...

 try: os.makedirs("path/to/directory") except FileExistsError: # directory already exists pass

...y al permitir un argumento de palabra clave para os.makedirs llamado exist_ok (en 3.2+).

 os.makedirs("path/to/directory", exist_ok=True) # succeeds even if directory exists.
over 4 years ago · Santiago Trujillo Denunciar

0

Dos cosas

  1. comprobar si el directorio existe?
  2. si no, cree un directorio (opcional).
 import os dirpath = "<dirpath>" # Replace the "<dirpath>" with actual directory path. if os.path.exists(dirpath): print("Directory exist") else: #this is optional if you want to create a directory if doesn't exist. os.mkdir(dirpath): print("Directory created")
over 4 years ago · Santiago Trujillo Denunciar

0

El siguiente código verifica que el directorio al que se hace referencia en su código exista o no, si no existe en su lugar de trabajo, entonces, crea uno:

 import os if not os.path.isdir("directory_name"): os.mkdir("directory_name")
over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda