Módulo OS en Python con ejemplos

El módulo OS en Python proporciona funciones para interactuar con el sistema operativo. OS viene bajo los módulos de utilidad estándar de Python. Este módulo proporciona una forma portátil de usar la funcionalidad dependiente del sistema operativo. Los módulos *os* y *os.path* incluyen muchas funciones para interactuar con el sistema de archivos.
 

Manejo del directorio de trabajo actual

Considere el Directorio de trabajo actual (CWD) como una carpeta, donde está funcionando Python. Siempre que los archivos se llamen solo por su nombre, Python asume que comienza en el CWD, lo que significa que la referencia de solo nombre tendrá éxito solo si el archivo está en el CWD de Python.
Nota: La carpeta donde se ejecuta el script de Python se conoce como Directorio actual. Esta no es la ruta donde se encuentra el script de Python.
Obtener el directorio de trabajo actual
Para obtener la ubicación del directorio de trabajo actual se utiliza os.getcwd() .
 

Ejemplo:

Python3

# Python program to explain os.getcwd() method 
          
# importing os module 
import os 
      
# Get the current working 
# directory (CWD) 
cwd = os.getcwd() 
      
# Print the current working 
# directory (CWD) 
print("Current working directory:", cwd) 

Producción:

Current working directory: /home/nikhil/Desktop/gfg

Cambiar el directorio de trabajo actual

Para cambiar el directorio de trabajo actual (CWD) se utiliza el método os.chdir() . Este método cambia el CWD a una ruta específica. Solo toma un único argumento como una nueva ruta de directorio.
 

Nota: El directorio de trabajo actual es la carpeta en la que opera el script de Python.
 

Ejemplo:

Python3

# Python program to change the 
# current working directory 
    
    
import os 
    
# Function to Get the current  
# working directory 
def current_path(): 
    print("Current working directory before") 
    print(os.getcwd()) 
    print() 
    
    
# Driver's code 
# Printing CWD before 
current_path() 
    
# Changing the CWD 
os.chdir('../') 
    
# Printing CWD after 
current_path() 

Producción:

Current working directory before
C:\Users\Nikhil Aggarwal\Desktop\gfg

Current working directory after
C:\Users\Nikhil Aggarwal\Desktop

Creación de un directorio

Hay diferentes métodos disponibles en el módulo OS para crear un directorio. Estos son –

  • os.mkdir()
  • os.makedirs()

Usando os.mkdir()

El método os.mkdir() en Python se usa para crear un directorio llamado ruta con el modo numérico especificado. Este método genera FileExistsError si el directorio que se va a crear ya existe.
 

Ejemplo: 

Python3

# Python program to explain os.mkdir() method 
  
# importing os module 
import os 
  
# Directory 
directory = "GeeksforGeeks"
  
# Parent Directory path 
parent_dir = "D:/Pycharm projects/"
  
# Path 
path = os.path.join(parent_dir, directory) 
  
# Create the directory 
# 'GeeksForGeeks' in 
# '/home / User / Documents' 
os.mkdir(path) 
print("Directory '% s' created" % directory) 
  
# Directory 
directory = "Geeks"
  
# Parent Directory path 
parent_dir = "D:/Pycharm projects"
  
# mode 
mode = 0o666
  
# Path 
path = os.path.join(parent_dir, directory) 
  
# Create the directory 
# 'GeeksForGeeks' in 
# '/home / User / Documents' 
# with mode 0o666 
os.mkdir(path, mode) 
print("Directory '% s' created" % directory) 

Producción:

Directory 'GeeksforGeeks' created
Directory 'Geeks' created

Usando os.makedirs()

El método os.makedirs() en Python se usa para crear un directorio de forma recursiva. Eso significa que al crear un directorio hoja si falta algún directorio de nivel intermedio, el método os.makedirs() los creará a todos.
 

Ejemplo: 

Python3

# Python program to explain os.makedirs() method 
      
# importing os module 
import os 
      
# Leaf directory 
directory = "Nikhil"
      
# Parent Directories 
parent_dir = "D:/Pycharm projects/GeeksForGeeks/Authors"
      
# Path 
path = os.path.join(parent_dir, directory) 
      
# Create the directory 
# 'Nikhil' 
os.makedirs(path) 
print("Directory '% s' created" % directory) 
      
# Directory 'GeeksForGeeks' and 'Authors' will 
# be created too 
# if it does not exists 
      
      
      
# Leaf directory 
directory = "c"
      
# Parent Directories 
parent_dir = "D:/Pycharm projects/GeeksforGeeks/a/b"
      
# mode 
mode = 0o666
      
path = os.path.join(parent_dir, directory) 
      
# Create the directory 'c' 
      
os.makedirs(path, mode) 
print("Directory '% s' created" % directory) 
      
      
# 'GeeksForGeeks', 'a', and 'b' 
# will also be created if 
# it does not exists 
      
# If any of the intermediate level 
# directory is missing 
# os.makedirs() method will 
# create them 
      
# os.makedirs() method can be 
# used to create a directory tree 

Producción:

Directory 'Nikhil' created
Directory 'c' created

Listado de archivos y directorios con Python

El método os.listdir() en Python se usa para obtener la lista de todos los archivos y directorios en el directorio especificado. Si no especificamos ningún directorio, se devolverá la lista de archivos y directorios en el directorio de trabajo actual.
 

Ejemplo:

Python3

# Python program to explain os.listdir() method 
      
# importing os module 
import os 
  
# Get the list of all files and directories 
# in the root directory 
path = "/"
dir_list = os.listdir(path) 
  
print("Files and directories in '", path, "' :") 
  
# print the list 
print(dir_list) 

Producción:

Files and directories in ' / ' :
['sys', 'run', 'tmp', 'boot', 'mnt', 'dev', 'proc', 'var', 'bin', 'lib64', 'usr', 
'lib', 'srv', 'home', 'etc', 'opt', 'sbin', 'media']

Eliminación de directorios o archivos usando Python

El módulo OS prueba diferentes métodos para eliminar directorios y archivos en Python. Estos son – 

  • Usando os.remove()
  • Usando os.rmdir()

Usando os.remove()

El método os.remove() en Python se usa para eliminar o eliminar una ruta de archivo. Este método no puede eliminar o eliminar un directorio. Si la ruta especificada es un directorio, el método generará OSError.
 

Ejemplo: supongamos que los archivos contenidos en la carpeta son:
 

Python3

# Python program to explain os.remove() method 
      
# importing os module 
import os 
      
# File name 
file = 'file1.txt'
      
# File location 
location = "D:/Pycharm projects/GeeksforGeeks/Authors/Nikhil/"
      
# Path 
path = os.path.join(location, file) 
      
# Remove the file 
# 'file.txt' 
os.remove(path) 

Producción:

Usando os.rmdir()

El método os.rmdir() en Python se usa para eliminar o eliminar un directorio vacío. Se generará OSError si la ruta especificada no es un directorio vacío.
 

Ejemplo: supongamos que los directorios son 

Python3

# Python program to explain os.rmdir() method 
      
# importing os module 
import os 
      
# Directory name 
directory = "Geeks"
      
# Parent Directory 
parent = "D:/Pycharm projects/"
      
# Path 
path = os.path.join(parent, directory) 
      
# Remove the Directory 
# "Geeks" 
os.rmdir(path) 

Producción:

Funciones de uso común

1. os.name: esta función proporciona el nombre del módulo dependiente del sistema operativo importado. Actualmente se han registrado los siguientes nombres: ‘posix’, ‘nt’, ‘os2’, ‘ce’, ‘java’ y ‘riscos’.

Python3

import os
  
print(os.name)

Producción:

posix

Nota: puede dar una salida diferente en diferentes intérpretes, como ‘posix’ cuando ejecuta el código aquí.
 

2. os.error: todas las funciones de este módulo generan OSError en el caso de nombres y rutas de archivo no válidos o inaccesibles, u otros argumentos que tienen el tipo correcto, pero que no son aceptados por el sistema operativo. os.error es un alias para la excepción OSError integrada. 

Python3

import os
  
  
try:
    # If the file does not exist,
    # then it would throw an IOError
    filename = 'GFG.txt'
    f = open(filename, 'rU')
    text = f.read()
    f.close()
  
# Control jumps directly to here if 
# any of the above lines throws IOError.    
except IOError:
  
    # print(os.error) will <class 'OSError'>
    print('Problem reading: ' + filename)
      
# In any case, the code then continues with 
# the line after the try/except

Producción: 

Problem reading: GFG.txt

 
3. os.popen(): este método abre una tubería hacia o desde el comando. El valor devuelto se puede leer o escribir dependiendo de si el modo es ‘r’ o ‘w’. 
Sintaxis: 

 os.popen(command[, mode[, bufsize]])

Los parámetros mode y bufsize no son parámetros necesarios; si no se proporcionan, se toma la ‘r’ predeterminada para el modo. 

Python3

import os
fd = "GFG.txt"
  
# popen() is similar to open()
file = open(fd, 'w')
file.write("Hello")
file.close()
file = open(fd, 'r')
text = file.read()
print(text)
  
# popen() provides a pipe/gateway and accesses the file directly
file = os.popen(fd, 'w')
file.write("Hello")
# File not closed, shown in next function.

Producción: 

Hello

Nota: No se mostrará la salida para popen(), habría cambios directos en el archivo.
 

4. os.close(): cierra el descriptor de archivo fd. Un archivo abierto usando open(), puede cerrarse solo con close(). Pero el archivo abierto a través de os.popen(), se puede cerrar con close() o os.close(). Si intentamos cerrar un archivo abierto con open(), usando os.close(), Python arrojaría TypeError. 

Python3

import os
  
  
fd = "GFG.txt"
file = open(fd, 'r')
text = file.read()
print(text)
os.close(file)

Producción: 

Traceback (most recent call last):
  File "C:\Users\GFG\Desktop\GeeksForGeeksOSFile.py", line 6, in 
    os.close(file)
TypeError: an integer is required (got type _io.TextIOWrapper)

Nota: Es posible que no se produzca el mismo error debido a la inexistencia del archivo o privilegio de permiso.
 

5. os.rename(): Un archivo old.txt puede ser renombrado a new.txt, usando la función os.rename(). El nombre del archivo cambia solo si el archivo existe y el usuario tiene suficiente permiso de privilegio para cambiar el archivo.

Python

import os
  
  
fd = "GFG.txt"
os.rename(fd,'New.txt')
os.rename(fd,'New.txt')

Producción:

Traceback (most recent call last):
  File "C:\Users\GFG\Desktop\ModuleOS\GeeksForGeeksOSFile.py", line 3, in 
    os.rename(fd,'New.txt')
FileNotFoundError: [WinError 2] The system cannot find the
file specified: 'GFG.txt' -> 'New.txt'

Comprensión de la salida: existe un nombre de archivo «GFG.txt», por lo tanto, cuando se usa os.rename() por primera vez, se cambia el nombre del archivo. Al llamar a la función os.rename() por segunda vez, el archivo «New.txt» existe y no «GFG.txt» 
, por lo que Python arroja FileNotFoundError. 
 

6. os.remove(): Usando el módulo Os podemos eliminar un archivo en nuestro sistema usando el método remove(). Para eliminar un archivo, debemos pasar el nombre del archivo como parámetro. 

Python3

import os #importing os module.
  
os.remove("file_name.txt") #removing the file.

El módulo OS nos proporciona una capa de abstracción entre nosotros y el sistema operativo. Cuando estamos trabajando con osmodule, siempre especifique la ruta absoluta según el sistema operativo, el código puede ejecutarse en cualquier sistema operativo, pero debemos cambiar la ruta exactamente. Si intenta eliminar un archivo que no existe obtendrá FileNotFoundError

7. os.path.exists(): este método verificará si un archivo existe o no al pasar el nombre del archivo como parámetro. El módulo OS tiene un submódulo llamado PATH mediante el cual podemos realizar muchas más funciones. 

Python3

import os 
#importing os module
  
result = os.path.exists("file_name") #giving the name of the file as a parameter.
  
print(result)
Producción

False

Como en el código anterior, el archivo no existe, dará un resultado Falso. Si el archivo existe, nos dará la salida True. 

8. os.path.getsize(): En este método, python nos dará el tamaño del archivo en bytes. Para usar este método necesitamos pasar el nombre del archivo como parámetro.

Python3

import os #importing os module
  
size = os.path.getsize("filename")
  
print("Size of the file is", size," bytes.")

Producción:

Size of the file is 192 bytes.

Este artículo es una contribución de Piyush Doorwar . Si te gusta GeeksforGeeks y te gustaría contribuir, también puedes escribir un artículo usando write.geeksforgeeks.org o enviar tu artículo por correo a review-team@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks.
Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.

Publicación traducida automáticamente

Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *