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


Modified text is an extract of the original Stack Overflow Documentation
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow