Encuentre el directorio actual y el directorio del archivo [duplicado]

Resuelto John Howard asked hace 13 años • 13 respuestas

¿Cómo determino:

  1. el directorio actual (donde estaba en el shell cuando ejecuté el script de Python), y
  2. ¿Dónde está el archivo Python que estoy ejecutando?
John Howard avatar Feb 28 '11 08:02 John Howard
Aceptado

Para obtener la ruta completa al directorio que contiene un archivo Python, escriba esto en ese archivo:

import os 
dir_path = os.path.dirname(os.path.realpath(__file__))

(Tenga en cuenta que el encantamiento anterior no funcionará si ya ha utilizado os.chdir()para cambiar su directorio de trabajo actual, ya que el valor de la __file__constante es relativo al directorio de trabajo actual y no se cambia mediante una os.chdir()llamada).


Para obtener el directorio de trabajo actual, use

import os
cwd = os.getcwd()

Referencias de documentación para los módulos, constantes y funciones utilizadas anteriormente:

  • Los módulos osy os.path.
  • El __file__constante
  • os.path.realpath(path)(devuelve "la ruta canónica del nombre de archivo especificado, eliminando cualquier enlace simbólico encontrado en la ruta" )
  • os.path.dirname(path)(devuelve "el nombre del directorio de la ruta path" )
  • os.getcwd()(devuelve "una cadena que representa el directorio de trabajo actual" )
  • os.chdir(path)( "cambiar el directorio de trabajo actual a path" )
Russell Dias avatar Feb 28 '2011 01:02 Russell Dias

Directorio de trabajo actual : os.getcwd()

Y el __file__atributo puede ayudarte a descubrir dónde se encuentra el archivo que estás ejecutando. Esta publicación de Stack Overflow explica todo: ¿ Cómo obtengo la ruta del archivo ejecutado actualmente en Python?

Nix avatar Feb 28 '2011 01:02 Nix

Puede que le resulte útil como referencia:

import os

print("Path at terminal when executing this file")
print(os.getcwd() + "\n")

print("This file path, relative to os.getcwd()")
print(__file__ + "\n")

print("This file full path (following symlinks)")
full_path = os.path.realpath(__file__)
print(full_path + "\n")

print("This file directory and name")
path, filename = os.path.split(full_path)
print(path + ' --> ' + filename + "\n")

print("This file directory only")
print(os.path.dirname(full_path))
Daniel Reis avatar Dec 05 '2012 10:12 Daniel Reis