Introducción
Cuando se trata de archivos en directorios en Python, siempre es una buena idea usar rutas absolutas. Sin embargo, si está trabajando con rutas relativas, debe comprender el concepto del directorio de trabajo actual y cómo encontrar o cambiar el directorio de trabajo actual. Una ruta absoluta especifica una ruta de archivo o directorio comenzando desde el directorio raíz, mientras que la ruta relativa comienza desde el directorio de trabajo actual.
Cuando se ejecuta un script de Python, el directorio de trabajo actual se establece en el directorio desde el que se ejecuta el script.
El módulo os python proporciona una forma portátil de interactuar con el sistema operativo. El módulo es parte de la biblioteca estándar de Python e incluye métodos para buscar y cambiar el directorio de trabajo actual.
Obtener el directorio de trabajo actual en Python
El getcwd()
del módulo os en Python devuelve una cadena que contiene la ruta absoluta del directorio de trabajo actual. La cadena devuelta no incluye el carácter de barra diagonal final.
os.getcwd()
Para utilizar los métodos del módulo del sistema operativo, debe importar el módulo al principio del archivo.
A continuación se muestra un ejemplo que muestra cómo imprimir el directorio de trabajo actual:
# Import the os module
import os
# Get the current working directory
cwd = os.getcwd()
# Print the current working directory
print("Current working directory: {0}".format(cwd))
# Print the type of the returned object
print("os.getcwd() returns an object of type: {0}".format(type(cwd)))
La salida se verá así:
Current working directory: /home/noviello
os.getcwd() returns an object of type: <class 'str'>
Si desea encontrar el directorio donde se encuentra el script, use os.path.realpath(__file__)
. Devolverá una cadena que contiene la ruta absoluta del script en ejecución.
Cambiar el directorio de trabajo actual en Python
Para cambiar el directorio de trabajo actual en Python, use el método chdir()
os.getcwd(path)
El método toma un argumento, la ruta al directorio donde desea cambiar. El path
puede ser absoluto o relativo.
Aquí hay un ejemplo:
# Import the os module
import os
# Print the current working directory
print("Current working directory: {0}".format(os.getcwd()))
# Change the current working directory
os.chdir('/tmp')
# Print the current working directory
print("Current working directory: {0}".format(os.getcwd()))
La salida se verá así:
Current working directory: /home/noviello
Current working directory: /tmp
El argumento proporcionado por el chdir()
debe ser un directorio; de lo contrario, se NotADirectoryError
un NotADirectoryError. Si el directorio especificado no existe, se FileNotFoundError
un FileNotFoundError. Si el usuario bajo el que se ejecuta el script no tiene los permisos necesarios, se PermissionError
un PermissionError.
# Import the os module
import os
path = '/var/www'
try:
os.chdir(path)
print("Current working directory: {0}".format(os.getcwd()))
except FileNotFoundError:
print("Directory: {0} does not exist".format(path))
except NotADirectoryError:
print("{0} is not a directory".format(path))
except PermissionError:
print("You do not have permissions to change to {0}".format(path))
Conclusión
Para encontrar el directorio de trabajo actual en Python, use os.getcwd()
y para cambiar el directorio de trabajo actual, use os.chdir(path)
.