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)
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