Il modulo OS in Python fornisce l'accesso a funzioni specifiche del sistema per gestire il file system, i processi, lo scheduler, ecc. È necessario padroneggiare il sistema operativo Python per scrivere applicazioni che si occupano di problemi del mondo reale. Questa guida discute alcuni dei concetti fondamentali e illustra come utilizzare il comando di sistema Python.
Caratteristiche del sistema operativo Python
Il sistema operativo funge da modo portatile di interagire con il sistema operativo sottostante. Offre accesso a nomi di file, argomenti della riga di comando, variabili di ambiente, parametri di processo e gerarchia del file system insieme ad altre funzionalità.
Questo modulo contiene anche due sottomoduli, il modulo os.sys e il modulo os.path. È possibile utilizzare le funzioni fornite dal modulo OS per eseguire un'ampia gamma di attività. Alcuni usi comuni includono l'esecuzione di comandi della shell, la gestione di file e directory, processi di deposizione delle uova, eccetera.
Introduzione al modulo OS
Il modo più semplice per esplorare il modulo del sistema operativo è tramite l'interprete. È possibile importare il modulo lì e utilizzare le funzioni di sistema senza scrivere il codice sorgente. Tuttavia, è necessario che Python sia installato per questo. Quindi vai avanti e installa Python sulla tua macchina locale.
Relazionato: Come installare Python su Ubuntu
Avvia l'interprete digitando pitone nel tuo terminale o shell dei comandi. Una volta aperto, importa il modulo del sistema operativo utilizzando la seguente istruzione.
>>> importa os
È ora possibile accedere alle funzionalità fornite dal modulo OS, incluso Python sistema comando. Ad esempio, è possibile determinare la piattaforma di sistema utilizzando il nome comando. L'esempio seguente mostra come richiamare i comandi di sistema esposti dal modulo del sistema operativo.
>>> os.name
Questa funzione controlla se alcuni moduli specifici del sistema operativo sono presenti e determina la piattaforma in base a ciò. Usa il il tuo nome funzione per ottenere informazioni dettagliate.
>>> os.uname ()
Questo comando visualizza la piattaforma di sistema esatta insieme all'architettura della macchina, al rilascio e alle informazioni sulla versione. Usa il getcwd funzione per recuperare la directory di lavoro corrente.
>>> os.getcwd ()
È possibile modificare facilmente la directory di lavoro utilizzando il comando di sistema Python chdir. Passa la nuova posizione come parametro di stringa.
>>> os.chdir ('/ tmp')
Il mkdir La funzione del modulo OS rende semplice la creazione di nuove directory. Ci permette anche di creare cartelle ricorsive, il che significa che Python creerà tutte le directory mancanti che sono genitori della directory foglia.
>>> os.mkdir ('nuova-dir')
Usa il rmdir comando per eliminare le directory dalla directory di lavoro.
>>> os.rmdir ('nuova-dir')
Esempi di comando di sistema Python
Il comando di sistema fornito dal modulo OS consente ai programmatori di eseguire i comandi della shell. Assicurati di definire il nome del comando come una stringa. Una volta chiamato il file python sistema comando, eseguirà il comando dato in una nuova subshell.
>>> cmd = 'data'
>>> os.system (cmd)
È possibile eseguire altre applicazioni autonome utilizzando lo stesso metodo. L'esempio seguente esegue il file editor di terminale nano dalla tua shell Python.
>>> cmd = 'nano'
>>> os.system (cmd)
Il sistema operativo Python emette anche il codice di ritorno per ogni comando in esecuzione. I sistemi POSIX restituiscono 0 per l'esecuzione corretta e valori diversi da zero per indicare problemi.
Puoi utilizzare il sistema operativo in Python per eseguire tutto ciò che desideri. Ad esempio, se il tuo programma ha bisogno di leggere le informazioni sulla versione di un programma sulla macchina dell'utente, potresti fare qualcosa di simile a quanto segue.
>>> cmd = "gcc --version"
>>> os.system (cmd)
L'esempio seguente esegue un semplice comando di shell che crea un nuovo file chiamato users.txt e lo popola con tutti gli utenti che hanno effettuato l'accesso. Molti programmi Python fanno queste cose.
>>> os.system ('utenti> test')
Stiamo passando il nome del comando al sistema operativo come stringa. Puoi usare tutti i tipi di file utili comandi da terminale allo stesso modo.
>>> os.system ('ping -c 3 google.com')
Puoi anche usare sottoprocesso richiede l'esecuzione di comandi di sistema da Python. Ciò fornisce numerosi vantaggi aggiuntivi, tra cui runtime più veloce, migliore gestione degli errori, analisi dell'output e comandi di piping della shell. La documentazione ufficiale di Python raccomanda anche la chiamata di sottoprocesso su moduli più vecchi come os.system e os.spawn.
>>> importa sottoprocesso
>>> subprocess.run (["ping", "- c 3", "example.com"])
Gestione di file e directory tramite il modulo OS
Abbiamo mostrato come creare semplici file e directory usando il modulo del sistema operativo Python. E se volessi creare cartelle nidificate? Il sistema operativo si occupa anche di questo per noi programmatori. Ad esempio, i frammenti di seguito creano la cartella $ HOME / test / root / api. Creerà anche le directory principali necessarie se non sono disponibili.
>>> dirname = os.path.join (os.environ ['HOME'], 'test', 'root', 'api')
>>> print (dirname)
>>> os.makedirs (dirname)
Innanzitutto, abbiamo recuperato la directory home utilizzando Environment e poi ha unito i nomi delle cartelle tramite os.path.join. L'istruzione print mostra il nome della cartella e makedirs lo crea.
Possiamo visualizzare la nuova directory utilizzando il listdir metodo del modulo OS.
>>> os.chdir (os.path.join (os.environ ['HOME'], 'test', 'root', 'api'))
>>> os.system ('touch file1 file2 file3')
>>> os.listdir (os.environ ['HOME'])
Puoi facilmente rinominare la directory api usando il rinominare comando offerto dal modulo OS. L'istruzione seguente rinomina questa directory api in test-api.
>>> os.rename ('api', 'test-api')
Usa il isfile e isdir funzione del sistema operativo se il programma deve convalidare file o directory specifici.
>>> os.path.isfile ('file1')
>>> os.path.isdir ('file1')
Il modulo OS in Python consente inoltre agli sviluppatori di estrarre nomi di file e cartelle insieme alle estensioni di file. I frammenti di seguito illustrano l'uso di os.path.split e os.path.splitext a questo proposito.
>>> dir = os.path.join (os.environ ['HOME'], 'test', 'root', 'api', 'file1.txt')
>>> dirname, basename = os.path.split (dir)
>>> print (dirname)
>>> print (nome base)
Usa il codice seguente per estrarre estensioni come .txt o .mp3 dai nomi dei file.
>>> nome file, estensione = os.path.splitext (nome base)
>>> print (nome file)
>>> print (estensione)
Uso vario del sistema operativo Python
Il modulo OS offre molte funzioni aggiuntive per la manipolazione di cose come i processi utente e il pianificatore di lavori. Ad esempio, puoi ottenere rapidamente l'UID (ID utente) del processo corrente utilizzando il file getuid funzione.
>>> os.getuid ()
>>> os.getgid ()
Il getgid funzione restituisce l'ID di gruppo del processo in esecuzione. Uso getpid per ottenere il PID (ID processo) e getppid per ottenere l'ID del processo genitore.
>>> os.getpid ()
>>> os.getppid ()
È inoltre possibile utilizzare il modulo del sistema operativo per modificare i permessi di file e directory dal programma Python. Usa il chmod funzione del sistema operativo per farlo.
>>> os.chmod ('file1.txt', 0o444)
Questo comando modifica l'autorizzazione di file1.txt per 0444. Uso 0o444 invece di 0444 per assicurarsi che l'istruzione sia compatibile con entrambe le principali versioni di Python.
Sfrutta la potenza del sistema operativo Python
Il modulo OS di Python fornisce tutto ciò di cui hai bisogno per interagire con il sistema operativo sottostante. Una chiara comprensione del sistema operativo è necessaria per scrivere programmi veramente multipiattaforma. Abbiamo coperto alcune delle funzionalità principali fornite da questo modulo per aiutarti a iniziare. Provali al tuo ritmo e non dimenticare di armeggiare con loro.
Pronto a portare la tua codifica Python al livello successivo? È ora di capire come creare e utilizzare le tuple.
- Programmazione
- Pitone

Rubaiat è un laureato in informatica con una forte passione per l'open source. Oltre ad essere un veterano di Unix, è anche appassionato di sicurezza di rete, crittografia e programmazione funzionale. È un appassionato collezionista di libri di seconda mano e ha un'ammirazione infinita per il rock classico.
Iscriviti alla nostra Newsletter
Iscriviti alla nostra newsletter per suggerimenti tecnici, recensioni, ebook gratuiti e offerte esclusive!
Ancora un passo…!
Conferma il tuo indirizzo e-mail nell'e-mail che ti abbiamo appena inviato.