El Mòdul SO en Python proporciona funcions per interactuar amb el sistema operatiu. El sistema operatiu inclou els mòduls d'utilitat estàndard de Python. Aquest mòdul proporciona una manera portàtil d'utilitzar la funcionalitat depenent del sistema operatiu.
El *os* i *os.path* Els mòduls inclouen moltes funcions per interactuar amb el sistema de fitxers.
Funcions del mòdul Python-OS
Aquí parlarem d'algunes funcions importants del mòdul Python OS:
- Maneig del directori de treball actual
- Creació d'un directori
- Llistar fitxers i directoris amb Python
- Suprimir directoris o fitxers amb Python
Maneig del directori de treball actual
Considereu Directori de treball actual (CWD) com a carpeta, on opera Python. Sempre que els fitxers només es criden pel seu nom, Python assumeix que comença al CWD, la qual cosa significa que la referència només al nom només tindrà èxit si el fitxer es troba al CWD de Python.
Nota: La carpeta on s'executa l'script de Python es coneix com a Directori actual. Aquest no és el camí on es troba l'script de Python.
Obtenció del directori de treball actual
Per obtenir la ubicació del directori de treball actual os.getcwd() s'utilitza.
Exemple: Aquest codi utilitza el ‘ os'> mòdul per obtenir i imprimir el directori de treball actual (CWD) de l'script de Python. Recupera el CWD mitjançant el ‘ os.getcwd()'> i després l'imprimeix a la consola.
import os cwd = os.getcwd() print('Current working directory:', cwd)> Sortida:
Current working directory: /home/nikhil/Desktop/gfg>
Canviant el directori de treball actual
Per canviar el directori de treball actual (CWD) os.chdir() s'utilitza el mètode. Aquest mètode canvia el CWD a un camí especificat. Només es necessita un sol argument com a camí de directori nou.
Nota: El directori de treball actual és la carpeta on funciona l'script de Python.
Exemple: El codi comprova i mostra el directori de treball actual (CWD) dues vegades: abans i després de canviar el directori un nivell amb os.chdir('../')> . Proporciona un exemple senzill de com treballar amb el directori de treball actual a Python.
import os def current_path(): print('Current working directory before') print(os.getcwd()) print() current_path() os.chdir('../') current_path()> Sortida:
Current working directory before C:UsersNikhil AggarwalDesktopgfg Current working directory after C:UsersNikhil AggarwalDesktop>
Creació d'un directori
Hi ha diferents mètodes disponibles al mòdul SO per crear un directori. Aquests són -
- os.mkdir()
- os.makedirs()
Utilitzant os.mkdir()
Mitjançant l'ús de os.mkdir() El mètode a Python s'utilitza per crear un directori anomenat ruta amb el mode numèric especificat. Aquest mètode genera FileExistsError si el directori que s'ha de crear ja existeix.
Exemple: Aquest codi crea dos directoris: techcodeview.com dins de D:/Projectes Pycharm/ directori i Geeks dins de D:/Projectes Pycharm directori.
- El primer directori es crea amb el
os.mkdir()>mètode sense especificar el mode. - El segon directori es crea utilitzant el mateix mètode, però un mode específic (
0o666>) es proporciona, que atorga permisos de lectura i escriptura. - Aleshores, el codi imprimeix missatges per indicar que s'han creat els directoris.
import os directory = 'techcodeview.com' parent_dir = 'D:/Pycharm projects/' path = os.path.join(parent_dir, directory) os.mkdir(path) print('Directory '% s' created' % directory) directory = 'Geeks' parent_dir = 'D:/Pycharm projects' mode = 0o666 path = os.path.join(parent_dir, directory) os.mkdir(path, mode) print('Directory '% s' created' % directory)> Sortida:
Directory 'techcodeview.com' created Directory 'Geeks' created>
Utilitzant os.makedirs()
os.makedirs() El mètode en Python s'utilitza per crear un directori de manera recursiva. Això vol dir que mentre es fa un directori fulla si falta algun directori de nivell intermedi, el mètode os.makedirs() els crearà tots.
Exemple: Aquest codi crea dos directoris, Nikhil i c , dins de diferents directoris principals. Fa servir elos.makedirs>funció per assegurar-se que es creen els directoris pare si no existeixen.
També estableix els permisos per a c directori. El codi imprimeix missatges per confirmar la creació d'aquests directoris
Python import os directory = 'Nikhil' parent_dir = 'D:/Pycharm projects/GeeksForGeeks/Authors' path = os.path.join(parent_dir, directory) os.makedirs(path) print('Directory '% s' created' % directory) directory = 'c' parent_dir = 'D:/Pycharm projects/techcodeview.com/a/b' mode = 0o666 path = os.path.join(parent_dir, directory) os.makedirs(path, mode) print('Directory '% s' created' % directory)> Sortida:
Directory 'Nikhil' created Directory 'c' created>
Llistar fitxers i directoris amb Python
Hi ha os.listdir() El mètode en Python s'utilitza per obtenir la llista de tots els fitxers i directoris del directori especificat. Si no especifiquem cap directori, es retornarà la llista de fitxers i directoris del directori de treball actual.
Exemple: Aquest codi enumera tots els fitxers i directoris del directori arrel (/) . Fa servir elos.listdir>funció per obtenir la llista de fitxers i directoris al camí especificat i després imprimeix els resultats.
import os path = '/' dir_list = os.listdir(path) print('Files and directories in '', path, '' :') print(dir_list)> Sortida:
Files and directories in ' / ' : ['sys', 'run', 'tmp', 'boot', 'mnt', 'dev', 'proc', 'var', 'bin', 'lib64', 'usr', 'lib', 'srv', 'home', 'etc', 'opt', 'sbin', 'media']>
Suprimir directoris o fitxers amb Python
El mòdul SO proporciona diferents mètodes per eliminar directoris i fitxers a Python. Aquests són -
- Utilitzant os.remove()
- Utilitzant os.rmdir()
Utilitzant el mètode os.remove().
os.remove() El mètode a Python s'utilitza per eliminar o eliminar una ruta de fitxer. Aquest mètode no pot eliminar ni eliminar un directori. Si el camí especificat és un directori, el mètode generarà OSError.
Exemple: Suposem que el fitxer contingut a la carpeta és:

Aquest codi elimina un fitxer anomenat file1.txt de la ubicació especificada D:/Pycharm projects/techcodeview.com/Authors/Nikhil/. Fa servir elos.remove>funció per eliminar el fitxer a la ruta especificada.
import os file = 'file1.txt' location = 'D:/Pycharm projects/techcodeview.com/Authors/Nikhil/' path = os.path.join(location, file) os.remove(path)>
Sortida:

Utilitzant os.rmdir()
os.rmdir() El mètode en Python s'utilitza per eliminar o eliminar un directori buit. OSError es generarà si el camí especificat no és un directori buit.
Exemple: Suposem que els directoris ho són

Aquest codi intenta eliminar un directori anomenat Geeks situat a D:/Projectes Pycharm/ .
Fa servir elos.rmdir>funció per eliminar el directori. Si el directori està buit, s'eliminarà. Si conté fitxers o subdirectoris, és possible que trobeu un error.
import os directory = 'Geeks' parent = 'D:/Pycharm projects/' path = os.path.join(parent, directory) os.rmdir(path)>
Sortida:

Funcions d'ús habitual
Utilitzant la funció os.name
Aquesta funció dóna el nom del mòdul depenent del sistema operatiu importat . Actualment s'han registrat els noms següents: ‘posix’, ‘nt’, ‘os2’, ‘ce’, ‘java’ i ‘riscos’.
Python import os print(os.name)>
Sortida:
posix>
Nota: Pot donar resultats diferents en diferents intèrprets, com ara 'posix' quan executeu el codi aquí.
Utilitzant la funció os.error
Totes les funcions d'aquest mòdul augmenten OSError en el cas de noms i camins de fitxer no vàlids o inaccessibles, o altres arguments que tinguin el tipus correcte, però que no siguin acceptats pel sistema operatiu. os.error és un àlies per a l'excepció OSError integrada.
Aquest codi llegeix el contingut d'un fitxer anomenat 'GFG.txt' . Utilitza a ‘ prova... excepte ‘ bloc per gestionar possibles errors, especialment els ' IOError ‘ això pot passar si hi ha un problema per llegir el fitxer.
Si es produeix un error, imprimirà un missatge que diu: Problema de lectura: GFG.txt.
Python import os try: filename = 'GFG.txt' f = open(filename, 'rU') text = f.read() f.close() except IOError: print('Problem reading: ' + filename)> Sortida:
Problem reading: GFG.txt>
Utilitzant la funció os.popen().
Aquest mètode obre una canonada cap a o des de l'ordre. El valor de retorn es pot llegir o escriure depenent de si el mode és 'r' o 'w' .
Sintaxi:
os.popen(command[, mode[, bufsize]])>
Els paràmetres mode i bufsize no són paràmetres necessaris, si no es proporcionen, per defecte es pren 'r' com a mode.
Aquest codi obre un fitxer anomenat 'GFG.txt' en mode d'escriptura, escriu Hola i després llegeix i imprimeix el seu contingut. L'ús de os.popen> no es recomana, i per a aquestes tasques s'utilitzen operacions de fitxer estàndard.
import os fd = 'GFG.txt' file = open(fd, 'w') file.write('Hello') file.close() file = open(fd, 'r') text = file.read() print(text) file = os.popen(fd, 'w') file.write('Hello')> Sortida:
Hello>
Nota: La sortida de popen() no es mostrarà, hi hauria canvis directes al fitxer.
Utilitzant la funció os.close().
Tanca el descriptor de fitxer fd. Un fitxer obert amb open(), només es pot tancar amb close(). Però el fitxer obert mitjançant os.popen(), es pot tancar amb close() o os.close() . Si intentem tancar un fitxer obert amb open(), utilitzant os.close(), Python llançaria TypeError.
Python import os fd = 'GFG.txt' file = open(fd, 'r') text = file.read() print(text) os.close(file)>
Sortida:
Traceback (most recent call last): File 'C:UsersGFGDesktopGeeksForGeeksOSFile.py', line 6, in os.close(file) TypeError: an integer is required (got type _io.TextIOWrapper)>
Nota: És possible que no es produeixi el mateix error, a causa del privilegi de fitxer o de permís inexistent.
Utilitzant la funció os.rename().
Es pot canviar el nom d'un fitxer old.txt a new.txt mitjançant la funció os.rename() . El nom del fitxer només canvia si el fitxer existeix i l'usuari té els permisos suficients per canviar el fitxer.
Python import os fd = 'GFG.txt' os.rename(fd,'New.txt') os.rename(fd,'New.txt')>
Sortida:
Traceback (most recent call last): File 'C:UsersGFGDesktopModuleOSGeeksForGeeksOSFile.py', line 3, in os.rename(fd,'New.txt') FileNotFoundError: [WinError 2] The system cannot find the file specified: 'GFG.txt' ->'Nou.txt'>>>Existeix un nom de fitxer GFG.txt, per tant, quan s'utilitza os.rename() la primera vegada, el fitxer es canvia de nom.
En cridar la funció os.rename() per segona vegada, el fitxer New.txt existeix i no GFG.txt, per tant, Python llança FileNotFoundError.
Utilitzant la funció os.remove().
Mitjançant el mòdul Os podem eliminar un fitxer del nostre sistema mitjançant el os.remove() mètode. Per eliminar un fitxer hem de passar el nom del fitxer com a paràmetre.
Pythonimport os #importing os module. os.remove('file_name.txt') #removing the file.>El mòdul del sistema operatiu ens proporciona una capa d'abstracció entre nosaltres i el sistema operatiu.
Quan estem treballant amb os El mòdul sempre especifiqueu la ruta absoluta depenent del sistema operatiu que el codi pot executar en qualsevol sistema operatiu, però hem de canviar la ruta exactament. Si intenteu eliminar un fitxer que no existeix, obtindreu FileNotFoundError .
Utilitzant la funció os.path.exists().
Aquest mètode comprovarà si un fitxer existeix o no passant el nom del fitxer com a paràmetre. El mòdul OS té un submòdul anomenat PATH mitjançant el qual podem realitzar moltes més funcions.
Pythonimport os #importing os module result = os.path.exists('file_name') #giving the name of the file as a parameter. print(result)>Sortida:
Com en el codi anterior, el fitxer no existeix, donarà sortida False. Si el fitxer existeix, ens donarà la sortida True. Utilitzant la funció os.path.getsize().
En os.path.getsize( ), Python ens donarà la mida del fitxer en bytes. Per utilitzar aquest mètode hem de passar el nom del fitxer com a paràmetre.
Pythonimport os #importing os module size = os.path.getsize('filename') print('Size of the file is', size,' bytes.')>Sortida:
primavera mvcSize of the file is 192 bytes.>