10 métodos del sistema de archivos de Python que debe conocer

Al programar en cualquier lenguaje, la interacción entre los programas y el sistema operativo (Windows, Linux, macOS) puede volverse importante en algún momento de la vida de cualquier desarrollador. Esta interacción puede incluir mover archivos de una ubicación a otra, crear un nuevo archivo, eliminar un archivo, etc. 

En este artículo, discutiremos 10 métodos esenciales del sistema de archivos del sistema operativo y el módulo Shutil en Python que ayuda a interactuar con nuestro sistema operativo y usar funcionalidades dependientes del sistema operativo.

os.getcwd()

El método os.getcwd() nos dice la ubicación del directorio de trabajo actual (CWD).

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

os.chdir()

El método os.chdir() en Python se usa para cambiar el directorio de trabajo actual a una ruta específica. Solo toma un único argumento como una nueva ruta de directorio.

Python3

# Python3 program to change the
# directory of file using os.chdir() method
  
# import os library
import os
  
# change the current directory
# to specified directory
os.chdir(r"C:\Users\Gfg\Desktop\geeks")
  
print("Directory changed")

Producción:

Directory changed

os.listdir()

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 path of current working directory
path = '/home'
  
# Get the list of all files and directories
# in current working directory
dir_list = os.listdir(path)
  
print("Files and directories in '", path, "' :")
print(dir_list)

Producción:

Files and directories in ' /home ' :
['nikhil']

os.caminar()

os.walk() genera los nombres de los archivos en un árbol de directorios recorriendo el árbol de arriba hacia abajo o de abajo hacia arriba. Para cada directorio en el árbol enraizado en la parte superior del directorio (incluida la parte superior misma), produce una tupla de 3 (ruta de directorio, nombres de directorio, nombres de archivo).

Ejemplo:

Python3

# Driver function
import os
  
for (root,dirs,files) in os.walk('/home/nikhil/Desktop/', topdown=True):
    print (root)
    print (dirs)
    print (files)
    print ('--------------------------------')

Producción:

python os.walk

os.path.join()

El método os.path.join() en Python une uno o más componentes de ruta de manera inteligente. Este método concatena varios componentes de ruta con exactamente un separador de directorio (‘/’) después de cada parte no vacía excepto el último componente de ruta. Si el último componente de ruta que se va a unir está vacío, se coloca un separador de directorio (‘/’) al final. 

Python3

# Python program to explain os.path.join() method
  
# importing os module
import os
  
# Path
path = "/home"
  
# Join various path components
print(os.path.join(path, "User/Desktop", "file.txt"))
  
  
# Path
path = "User/Documents"
  
# Join various path components
print(os.path.join(path, "/home", "file.txt"))
  
# In above example '/home'
# represents an absolute path
# so all previous components i.e User / Documents
# are thrown away and joining continues
# from the absolute path component i.e / home.
  
  
# Path
path = "/home"
  
# Join various path components
print(os.path.join(path, "User/Public/", "Documents", ""))
  
# In above example the last
# path component is empty
# so a directory separator ('/')
# will be put at the end
# along with the concatenated value
Producción

/home/User/Desktop/file.txt
/home/file.txt
/home/User/Public/Documents/

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. Por ejemplo, considere la siguiente ruta:

/home/User/Documents/GeeksForGeeks/Authors/nikhil

Supongamos que queremos crear un directorio ‘nikhil’ pero el directorio ‘GeeksForGeeks’ y ‘Authors’ no están disponibles en la ruta. Luego, el método os.makedirs() creará todos los directorios no disponibles/faltantes en la ruta especificada. Primero se crearán ‘GeeksForGeeks’ y ‘Authors’ y luego se creará el directorio ‘nikhil’. 

Ejemplo:

Python3

# Python program to explain os.makedirs() method
     
# importing os module
import os
   
# Leaf directory
directory = "nikhil"
   
# Parent Directories
parent_dir = "/home/User/Documents/GeeksForGeeks/Authors"
   
# Path
path = os.path.join(parent_dir, directory)
   
# Create the directory
# 'ihritik'
os.makedirs(path)
print("Directory '%s' created" %directory)

Producción:

Directory 'nikhil' created

shutil.copia2()

El método shutil.copy2() en Python se usa para copiar el contenido del archivo fuente al archivo o directorio de destino. Este método es idéntico al método shutil.copy() pero también intenta conservar los metadatos del archivo.

Ejemplo:

Directorio utilizado

shutil.copy2

Python3

# Python program to explain shutil.copy2() method
  
# importing os module
import os
  
# importing shutil module
import shutil
  
# path
path = '/home/nikhil/Desktop/new'
  
# List files and directories
# in '/home/User/Documents'
print("Before copying file:")
print(os.listdir(path))
  
  
# Source path
source = "/home/nikhil/Desktop/new/pdf.py"
  
# Print the metadeta
# of source file
metadata = os.stat(source)
print("Metadata:", metadata, "\n")
  
# Destination path
destination = "/home/nikhil/Desktop/new/copy_pdf.py"
  
# Copy the content of
# source to destination
dest = shutil.copy2(source, destination)
  
# List files and directories
# in "/home / User / Documents"
print("After copying file:")
print(os.listdir(path))
  
# Print the metadata
# of the destination file
matadata = os.stat(destination)
print("Metadata:", metadata)
  
# Print path of newly
# created file
print("Destination path:", dest)

Producción:

Antes de copiar el archivo:

[‘pdf.py’, ‘pdf1.pdf’]

Metadatos: os.stat_result(st_mode=33204, st_ino=58068385, st_dev=2050, st_nlink=1, st_uid=1000, st_gid=1000, st_size=887, st_atime=1619538642, st_mtime=1618307697, st_ctime)3

Después de copiar el archivo:

[‘copia_pdf.py’, ‘pdf.py’, ‘pdf1.pdf’]

Metadatos: os.stat_result(st_mode=33204, st_ino=58068385, st_dev=2050, st_nlink=1, st_uid=1000, st_gid=1000, st_size=887, st_atime=1619538642, st_mtime=1618307697, st_ctime)3

Ruta de destino: /home/nikhil/Desktop/new/copy_pdf.py

Directorio

shutil.copy2

cerrar.mover()

método shutil.move() Mueve recursivamente un archivo o directorio (fuente) a otra ubicación (destino) y devuelve el destino. Si el directorio de destino ya existe, src se mueve dentro de ese directorio. Si el destino ya existe pero no es un directorio, entonces se puede sobrescribir dependiendo de la semántica os.rename().

Ejemplo:

Directorio utilizado

shutil.move

Python3

# Python program to explain shutil.move() method
      
# importing os module
import os
  
# importing shutil module
import shutil
  
# path
path = '/home/nikhil/Desktop/'
  
# List files and directories
# in 'C:/Users/Rajnish/Desktop/GeeksforGeeks'
print("Before moving file:")
print(os.listdir(path))
  
  
# Source path
source = '/home/nikhil/Desktop/new'
  
# Destination path
destination = '/home/nikhil/Desktop/new2'
  
# Move the content of
# source to destination
dest = shutil.move(source, destination)
  
# List files and directories
# in "C:/Users / Rajnish / Desktop / GeeksforGeeks"
print("After moving file:")
print(os.listdir(path))
  
# Print path of newly
# created file
print("Destination path:", dest)

Producción:

shutil.moveshutil.move

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. 

Ejemplo:

Python3

# Python program to explain os.remove() method
      
# importing os module
import os
  
# File name
file = 'file.txt'
  
# File location
location = "/home/User/Documents"
  
# Path
path = os.path.join(location, file)
  
# Remove the file
# 'file.txt'
os.remove(path)
print("%s has been removed successfully" %file)

Producción:

file.txt has been removed successfully

shutil.rmtree()

shutil.rmtree() se usa para eliminar un árbol de directorios completo, la ruta debe apuntar a un directorio.

Ejemplo: suponga que el directorio y los subdirectorios son los siguientes.

# Directorio de padres:

shutil.rmtree()

# Directorio dentro del directorio principal:

shutil.rmtree()

# Archivo dentro del subdirectorio:

python shutil.rmtree()

Python3

# Python program to demonstrate
# shutil.rmtree()
  
import shutil
import os
  
# location
location = "D:/Pycharm projects/GeeksforGeeks/"
  
# directory
dir = "Authors"
  
# path
path = os.path.join(location, dir)
  
# removing directory
shutil.rmtree(path)

Producción:

python shutil.rmtree()

Consulte los artículos a continuación para ver nuestro tutorial completo sobre el módulo OS y el módulo Shutil.

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 *