Pregunta Encuentra el directorio actual y el directorio del archivo [duplicado]


Esta pregunta ya tiene una respuesta aquí:

En Python, ¿qué comandos puedo usar para encontrar:

  1. el directorio actual (donde estaba en la terminal cuando ejecuté el script de Python), y
  2. ¿Dónde está el archivo que estoy ejecutando?

1493
2018-02-28 01:51


origen


Respuestas:


Para obtener la ruta completa al directorio en el que se encuentra un archivo Python, escríbalo en ese archivo:

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

(Tenga en cuenta que el conjuro anterior no funcionará si ya ha utilizado os.chdir() para cambiar su directorio de trabajo actual, ya que el valor de __file__ constante es relativa al directorio de trabajo actual y no se cambia por un os.chdir() llamada.)


Para obtener el uso actual del directorio de trabajo

import os
cwd = os.getcwd()

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

  • los os y os.path módulos.
  • los __file__ constante
  • os.path.realpath(path) (devoluciones "la ruta canónica del nombre de archivo especificado, eliminando cualquier enlace simbólico encontrado en la ruta")
  • os.path.dirname(path) (devoluciones "el nombre del directorio de la ruta path")
  • os.getcwd() (devoluciones "una cadena que representa el directorio de trabajo actual")
  • os.chdir(path) ("cambiar el directorio de trabajo actual a path")

2263
2018-02-28 01:54



Directorio de trabajo actual: os.getcwd ()

Y el atributo __file__  puede ayudarlo a encontrar dónde se encuentra el archivo que está ejecutando. Esta publicación SO explica todo: ¿Cómo obtengo la ruta del archivo ejecutado actual en Python?


271
2018-02-28 01:53



Puede encontrar esto ú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))

225
2017-12-05 10:18



1.Para obtener la ruta completa del directorio actual

    >>import os
    >>print os.getcwd()

o / p: "C: \ Users \ admin \ myfolder"

1.Para obtener el nombre de la carpeta del directorio actual solo

    >>import os
    >>str1=os.getcwd()
    >>str2=str1.split('\\')
    >>n=len(str2)
    >>print str2[n-1]

o / p: "myfolder"


47
2018-04-24 07:00



Si está tratando de encontrar el directorio actual del archivo en el que se encuentra actualmente:

Manera agnóstica del sistema operativo:

dirname, filename = os.path.split(os.path.abspath(__file__))

33
2017-10-07 09:10



Respuesta al n. ° 1:

Si quieres el directorio actual, haz esto:

import os
os.getcwd()

Si desea cualquier nombre de carpeta y tiene la ruta a esa carpeta, haga esto:

def get_folder_name(folder):
    '''
    Returns the folder name, given a full folder path
    '''
    return folder.split(os.sep)[-1]

Respuesta al # 2:

import os
print os.path.abspath(__file__)

26
2017-11-05 09:31



Un poco tarde para la fiesta, pero creo que la forma más concisa de encontrar solo el nombre de su contexto de ejecución actual sería

current_folder_path, current_folder_name = os.path.split(os.getcwd())

25
2017-10-09 10:31



Si está utilizando Python 3.4, existe el nuevo nivel más alto pathlib módulo que le permite llamar convenientemente pathlib.Path.cwd() conseguir un Path objeto que representa su directorio de trabajo actual, junto con muchas otras características nuevas.

Se puede encontrar más información sobre esta nueva API aquí.


24
2018-02-20 20:32