En este artículo, cubriremos Cómo obtener y cambiar el directorio de trabajo en Python. Mientras trabaja con manejo de archivos Es posible que hayas notado que se hace referencia a los archivos solo por sus nombres, p. 'GFG.txt' y si el archivo no se encuentra en el directorio del script, Python genera un error. El concepto de la Directorio de trabajo actual (CWD) cobra importancia aquí. Considere el CWD como la carpeta, dentro de la cual Python opera. Siempre que los archivos se llaman solo por su nombre, Python asume que comienza en el CWD, lo que significa que una referencia de solo nombre tendrá éxito solo si el archivo está en el CWD de Python.
Nota: La carpeta donde se ejecuta el script Python se conoce como Directorio actual. Es posible que esta no sea la ruta donde se encuentra el script de Python.
¿Qué es el módulo del sistema operativo Python?
Python proporciona un módulo del sistema operativo para interactuar con el sistema operativo. Este módulo forma parte del módulo de utilidad estándar de Python. Todas las funciones en el módulo del sistema operativo aumentan. OSError en el caso de nombres y rutas de archivos no válidos o inaccesibles, u otros argumentos que tengan el tipo correcto pero que no sean aceptados por el sistema operativo.
Python encuentra el directorio actual
Obtenga un directorio del script Python actual usando sys.argv[0]
En este ejemplo, hemos utilizado sistema.argv[0] para recuperar la ruta del archivo de script y os.ruta.dirname() extrae el directorio actual de la ruta.
Python3
import> os> import> sys> script_directory> => os.path.dirname(os.path.abspath(sys.argv[> 0> ]))> print> (script_directory)> |
>
>
Producción :

Obtenga un directorio del script Python actual
Obtenga el directorio del script Python actual usando el módulo Inspect
En este ejemplo, hemos utilizado inspeccionar.getfile(inspect.currentframe()) que devuelve la ruta del archivo de script actual, y os.ruta.dirname() extrae el directorio actual de la ruta.
Python3
import> inspect> import> os> script_directory> => os.path.dirname(os.path.abspath(> > inspect.getfile(inspect.currentframe())))> > print> (script_directory)> |
>
>
Producción :
Java no

Obtener el directorio del script Python actual
Obtenga el directorio de trabajo actual usando os.getcwd()
En este ejemplo, hemos utilizado sistema operativo.getcwd() para obtener el directorio actual del script Python.
Python3
import> os> > print> (> 'File location using os.getcwd():'> , os.getcwd())> |
>
>
Producción :
File location using os.getcwd(): /home/tuhingfg/Documents/Scripts>
Nota: Usando sistema operativo.getcwd() no funciona como se esperaba cuando se ejecuta el código Python desde un directorio diferente al del script Python.
Resultado inesperado al ejecutar un script de Python desde un directorio diferente al script usando os.getcwd()
El script Python se coloca dentro. /home/tuhingfg/Documentos/Scripts . Cuando ejecutamos el script desde dentro de la misma carpeta, proporciona la ubicación correcta del script. Pero cuando cambiamos nuestro directorio a algún otro lugar, genera la ubicación de ese directorio. Esto es porque sistema operativo.getcwd() considera el directorio desde donde estamos ejecutando el script. En base a esto, el resultado de sistema operativo.getcwd() también varía.
Python3
sistema operativo linux
import> os> > print> (> 'File location using os.getcwd():'> , os.getcwd())> |
>
>
Producción:

Obtener la ubicación del script usando os.getcwd()
Obtenga la ubicación del script Python usando el método os.path.realpath()
os.path.realpath() se puede utilizar para obtener la ruta del script Python actual. En realidad, el método os.path.realpath() en Python se utiliza para obtener la ruta canónica del nombre de archivo especificado eliminando cualquier enlace simbólico encontrado en la ruta. Una variable especial __archivo__ se pasa a la ruta real() método para obtener la ruta del script Python.
En este ejemplo, el sistema operativo.getcwd() y __archivo__ proporcionar dos resultados diferentes. Dado que estamos ejecutando el script desde una carpeta diferente a la del script, sistema operativo.getcwd() La salida ha cambiado según la carpeta de ejecución del script. Pero __archivo__ genera el resultado constante independientemente del directorio de trabajo actual.
Python3
import> os> > print> (> 'File location using os.getcwd():'> ,> > os.getcwd())> > print> (f> 'File location using __file__ variable:'> +> > '{os.path.realpath(os.path.dirname(__file__))}'> )> |
>
>
Producción:

Obtener un directorio con Python
Nota: __archivo__ es el nombre de ruta del archivo desde el cual se cargó el módulo si se cargó desde un archivo.