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:
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
/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
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
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
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:
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:
# Directorio dentro del directorio principal:
# Archivo dentro del subdirectorio:
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:
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