IL Modulo del sistema operativo in Python fornisce funzioni per interagire con il sistema operativo. Il sistema operativo rientra nei moduli di utilità standard di Python. Questo modulo fornisce un modo portabile di utilizzare funzionalità dipendenti dal sistema operativo.
IL *os* e *os.percorso* i moduli includono molte funzioni per interagire con il file system.
Funzioni del modulo Python-OS
Qui discuteremo alcune importanti funzioni del modulo del sistema operativo Python:
- Gestire la directory di lavoro corrente
- Creazione di una directory
- Elencare file e directory con Python
- Eliminazione di directory o file utilizzando Python
Gestire la directory di lavoro corrente
Prendere in considerazione Directory di lavoro corrente (CWD) come cartella, dove opera Python. Ogni volta che i file vengono chiamati solo con il loro nome, Python presuppone che inizi nella CWD, il che significa che il riferimento solo al nome avrà successo solo se il file si trova nella CWD di Python.
Nota: La cartella in cui è in esecuzione lo script Python è nota come Directory corrente. Questo non è il percorso in cui si trova lo script Python.
Ottenere la directory di lavoro corrente
Per ottenere la posizione della directory di lavoro corrente os.getcwd() si usa.
Esempio: Questo codice utilizza il ' os'> modulo per ottenere e stampare la directory di lavoro corrente (CWD) dello script Python. Recupera il CWD utilizzando il file ' os.getcwd()'> e poi lo stampa sulla console.
import os cwd = os.getcwd() print('Current working directory:', cwd)> Produzione:
Current working directory: /home/nikhil/Desktop/gfg>
Modifica della directory di lavoro corrente
Per modificare la directory di lavoro corrente (CWD) os.chdir() viene utilizzato il metodo. Questo metodo modifica il CWD in un percorso specificato. Richiede solo un singolo argomento come nuovo percorso di directory.
Nota: La directory di lavoro corrente è la cartella in cui opera lo script Python.
Esempio: Il codice controlla e visualizza la directory di lavoro corrente (CWD) due volte: prima e dopo aver modificato la directory al livello superiore utilizzando os.chdir('../')> . Fornisce un semplice esempio di come lavorare con la directory di lavoro corrente in Python.
import os def current_path(): print('Current working directory before') print(os.getcwd()) print() current_path() os.chdir('../') current_path()> Produzione:
Current working directory before C:UsersNikhil AggarwalDesktopgfg Current working directory after C:UsersNikhil AggarwalDesktop>
Creazione di una directory
Nel modulo del sistema operativo sono disponibili diversi metodi per creare una directory. Questi sono -
- os.mkdir()
- os.makedirs()
Utilizzando os.mkdir()
Usando os.mkdir() Il metodo in Python viene utilizzato per creare una directory denominata percorso con la modalità numerica specificata. Questo metodo solleva FileExistsError se la directory da creare esiste già.
Esempio: Questo codice crea due directory: techcodeview.com all'interno del D:/Progetti Pycharm/ directory e Geek all'interno del D:/Progetti Pycharm directory.
- La prima directory viene creata utilizzando il file
os.mkdir()>metodo senza specificare la modalità. - La seconda directory viene creata utilizzando lo stesso metodo, ma una modalità specifica (
0o666>) viene fornito, che concede autorizzazioni di lettura e scrittura. - Il codice quindi stampa i messaggi per indicare che le directory sono state create.
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)> Produzione:
Directory 'techcodeview.com' created Directory 'Geeks' created>
Utilizzando os.makedirs()
os.makedirs() Il metodo in Python viene utilizzato per creare una directory in modo ricorsivo. Ciò significa che durante la creazione della directory foglia se manca una directory di livello intermedio, il metodo os.makedirs() le creerà tutte.
Esempio: Questo codice crea due directory, Nikhil E C , all'interno di diverse directory principali. Utilizza ilos.makedirs>funzione per garantire che le directory principali vengano create se non esistono.
Imposta inoltre le autorizzazioni per il file C directory. Il codice stampa messaggi per confermare la creazione di queste directory
Pitone 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)> Produzione:
Directory 'Nikhil' created Directory 'c' created>
Elencare file e directory con Python
C'è os.listdir() Il metodo in Python viene utilizzato per ottenere l'elenco di tutti i file e le directory nella directory specificata. Se non specifichiamo alcuna directory, verrà restituito l'elenco dei file e delle directory nella directory di lavoro corrente.
Esempio: Questo codice elenca tutti i file e le directory nella directory root (/) . Utilizza ilos.listdir>per ottenere l'elenco di file e directory nel percorso specificato e quindi stampare i risultati.
import os path = '/' dir_list = os.listdir(path) print('Files and directories in '', path, '' :') print(dir_list)> Produzione:
Files and directories in ' / ' : ['sys', 'run', 'tmp', 'boot', 'mnt', 'dev', 'proc', 'var', 'bin', 'lib64', 'usr', 'lib', 'srv', 'home', 'etc', 'opt', 'sbin', 'media']>
Eliminazione di directory o file utilizzando Python
Il modulo del sistema operativo fornisce diversi metodi per rimuovere directory e file in Python. Questi sono -
- Utilizzando os.remove()
- Utilizzando os.rmdir()
Utilizzando il metodo os.remove()
os.remove() Il metodo in Python viene utilizzato per rimuovere o eliminare un percorso di file. Questo metodo non può rimuovere o eliminare una directory. Se il percorso specificato è una directory, il metodo genererà un'eccezione OSError.
Esempio: Supponiamo che i file contenuti nella cartella siano:

Questo codice rimuove un file denominato file1.txt dalla posizione specificata D:/Pycharm Projects/techcodeview.com/Authors/Nikhil/. Utilizza ilos.remove>funzione per eliminare il file nel percorso specificato.
import os file = 'file1.txt' location = 'D:/Pycharm projects/techcodeview.com/Authors/Nikhil/' path = os.path.join(location, file) os.remove(path)>
Produzione:

Utilizzando os.rmdir()
os.rmdir() Il metodo in Python viene utilizzato per rimuovere o eliminare una directory vuota. Verrà sollevato un messaggio OSError se il percorso specificato non è una directory vuota.
Esempio: Supponiamo che le directory lo siano

Questo codice tenta di rimuovere una directory denominata Geek situato in D:/Progetti Pycharm/ .
Utilizza ilos.rmdir>funzione per eliminare la directory. Se la directory è vuota, verrà rimossa. Se contiene file o sottodirectory, potresti riscontrare un errore.
import os directory = 'Geeks' parent = 'D:/Pycharm projects/' path = os.path.join(parent, directory) os.rmdir(path)>
Produzione:

Funzioni di uso comune
Utilizzando la funzione os.name
Questa funzione fornisce il nome del modulo importato dipendente dal sistema operativo . Attualmente sono registrati i seguenti nomi: “posix”, “nt”, “os2”, “ce”, “java” e “riscos”.
Pitone import os print(os.name)>
Produzione:
posix>
Nota: Potrebbe fornire output diversi su interpreti diversi, come 'posix' quando esegui il codice qui.
Utilizzando la funzione os.error
Tutte le funzioni in questo modulo aumentano OSError in caso di nomi e percorsi di file non validi o inaccessibili o altri argomenti che hanno il tipo corretto, ma non sono accettati dal sistema operativo. os.error è un alias per l'eccezione OSError incorporata.
Questo codice legge il contenuto di un file denominato 'GFG.txt' . Utilizza a ' provare...tranne ' blocco per gestire potenziali errori, in particolare il ' IOError ' ciò può verificarsi se si verifica un problema nella lettura del file.
Se si verifica un errore, verrà stampato un messaggio che dice: Problema durante la lettura: GFG.txt.
Pitone import os try: filename = 'GFG.txt' f = open(filename, 'rU') text = f.read() f.close() except IOError: print('Problem reading: ' + filename)> Produzione:
Problem reading: GFG.txt>
Utilizzando la funzione os.popen()
Questo metodo apre una pipe da o verso il comando. Il valore restituito può essere letto o scritto a seconda della modalità 'r' o 'w' .
Sintassi:
os.popen(command[, mode[, bufsize]])>
I parametri mode e bufsize non sono parametri necessari, se non forniti, viene utilizzata la 'r' predefinita per la modalità.
Questo codice apre un file denominato 'GFG.txt' in modalità scrittura, scrive Ciao ad esso, quindi legge e stampa il suo contenuto. L'impiego di os.popen> non è consigliato e per queste attività vengono utilizzate operazioni sui file standard.
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')> Produzione:
Hello>
Nota: L'output per popen() non verrà mostrato, ci sarebbero modifiche dirette nel file.
Utilizzando la funzione os.close()
Chiudi il descrittore di file fd. Un file aperto utilizzando open() può essere chiuso solo da close(). Ma il file aperto tramite os.popen(), può essere chiuso con close() o os.close() . Se provassimo a chiudere un file aperto con open(), utilizzando os.close(), Python lancerebbe TypeError.
Pitone import os fd = 'GFG.txt' file = open(fd, 'r') text = file.read() print(text) os.close(file)>
Produzione:
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: Lo stesso errore potrebbe non essere generato a causa del file inesistente o del privilegio di autorizzazione.
Utilizzando la funzione os.rename()
Un file old.txt può essere rinominato in new.txt, utilizzando la funzione os.rinomina() . Il nome del file cambia solo se il file esiste e l'utente dispone di privilegi sufficienti per modificare il file.
Pitone import os fd = 'GFG.txt' os.rename(fd,'New.txt') os.rename(fd,'New.txt')>
Produzione:
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' ->'Nuovo.txt'>
Esiste un nome file GFG.txt, quindi quando os.rename() viene utilizzato per la prima volta, il file viene rinominato.
Dopo aver chiamato la funzione os.rename() una seconda volta, esiste il file New.txt e non GFG.txt quindi Python lancia FileNotFoundError.
Utilizzando la funzione os.remove()
Usando il modulo Os possiamo rimuovere un file nel nostro sistema usando il file os.remove() metodo. Per rimuovere un file dobbiamo passare il nome del file come parametro.
Pitone import os #importing os module. os.remove('file_name.txt') #removing the file.> Il modulo del sistema operativo ci fornisce uno strato di astrazione tra noi e il sistema operativo.
Quando lavoriamo con os Il modulo specifica sempre il percorso assoluto a seconda del sistema operativo, il codice può essere eseguito su qualsiasi sistema operativo ma dobbiamo modificare esattamente il percorso. Se provi a rimuovere un file che non esiste otterrai Errore FileNotFound .
Utilizzo della funzione os.path.exists()
Questo metodo controllerà se un file esiste o meno passando il nome del file come parametro. Il modulo del sistema operativo ha un sottomodulo denominato PATH utilizzando il quale possiamo eseguire molte più funzioni.
Pitone import os #importing os module result = os.path.exists('file_name') #giving the name of the file as a parameter. print(result)> Produzione:
False>
Come nel codice precedente, il file non esiste e darà l'output False. Se il file esiste, ci darà l'output True.
Utilizzando la funzione os.path.getsize()
In os.path.getsize( ), Python ci fornirà la dimensione del file in byte. Per utilizzare questo metodo dobbiamo passare il nome del file come parametro.
Pitone import os #importing os module size = os.path.getsize('filename') print('Size of the file is', size,' bytes.')> Produzione:
albero binario in Java
Size of the file is 192 bytes.>