Python Language
El módulo os
Buscar..
Introducción
Este módulo proporciona una forma portátil de utilizar la funcionalidad dependiente del sistema operativo.
Sintaxis
- importación OS
Parámetros
Parámetro | Detalles |
---|---|
Camino | Una ruta a un archivo. El separador de ruta puede ser determinado por os.path.sep . |
Modo | El permiso deseado, en octal (por ejemplo, 0700 ) |
Crear un directorio
os.mkdir('newdir')
Si necesita especificar permisos, puede usar el argumento de mode
opcional:
os.mkdir('newdir', mode=0700)
Obtener directorio actual
Utilice la función os.getcwd()
:
print(os.getcwd())
Determinar el nombre del sistema operativo.
El módulo os
proporciona una interfaz para determinar en qué tipo de sistema operativo se está ejecutando actualmente el código.
os.name
Esto puede devolver uno de los siguientes en Python 3:
-
posix
-
nt
-
ce
-
java
Se puede obtener información más detallada de sys.platform
Eliminar un directorio
Eliminar el directorio en la path
:
os.rmdir(path)
No debe usar os.remove()
para eliminar un directorio. Esa función es para archivos y su uso en directorios resultará en un OSError
Seguir un enlace simbólico (POSIX)
A veces es necesario determinar el objetivo de un enlace simbólico. os.readlink
hará esto:
print(os.readlink(path_to_symlink))
Cambiar permisos en un archivo
os.chmod(path, mode)
donde mode
es el permiso deseado, en octal.
makedirs - creación de directorio recursivo
Dado un directorio local con los siguientes contenidos:
└── dir1
├── subdir1
└── subdir2
Queremos crear el mismo subdir1, subdir2 bajo un nuevo directorio dir2, que aún no existe.
import os
os.makedirs("./dir2/subdir1")
os.makedirs("./dir2/subdir2")
Ejecutando estos resultados en
├── dir1
│ ├── subdir1
│ └── subdir2
└── dir2
├── subdir1
└── subdir2
dir2 solo se crea la primera vez que se necesita, para la creación de subdir1.
Si hubiéramos usado os.mkdir en su lugar, habríamos tenido una excepción porque dir2 no habría existido todavía.
os.mkdir("./dir2/subdir1")
OSError: [Errno 2] No such file or directory: './dir2/subdir1'
os.makedirs no le gustará si el directorio de destino ya existe. Si lo volvemos a ejecutar de nuevo:
OSError: [Errno 17] File exists: './dir2/subdir1'
Sin embargo, esto podría solucionarse fácilmente detectando la excepción y comprobando que el directorio se haya creado.
try:
os.makedirs("./dir2/subdir1")
except OSError:
if not os.path.isdir("./dir2/subdir1"):
raise
try:
os.makedirs("./dir2/subdir2")
except OSError:
if not os.path.isdir("./dir2/subdir2"):
raise