Directory Python e gestione dei file

In questo tutorial imparerai a gestire file e directory in Python, ovvero creare una directory, rinominarla, elencare tutte le directory e lavorare con esse.

Video: modulo sistema operativo Python

Directory Python

Se c'è un gran numero di file da gestire nel nostro programma Python, possiamo organizzare il nostro codice all'interno di directory diverse per rendere le cose più gestibili.

Una directory o una cartella è una raccolta di file e sottodirectory. Python ha il osmodulo che ci fornisce molti metodi utili per lavorare con le directory (e anche i file).

Ottieni directory corrente

Possiamo ottenere l'attuale directory di lavoro usando il getcwd()metodo del osmodulo.

Questo metodo restituisce la directory di lavoro corrente sotto forma di stringa. Possiamo anche usare il getcwdb()metodo per ottenerlo come oggetto byte.

 >>> import os >>> os.getcwd() 'C:\Program Files\PyScripter' >>> os.getcwdb() b'C:\Program Files\PyScripter'

Il backslash aggiuntivo implica una sequenza di escape. La print()funzione lo renderà correttamente.

 >>> print(os.getcwd()) C:Program FilesPyScripter

Modifica della directory

Possiamo cambiare la directory di lavoro corrente usando il chdir()metodo.

Il nuovo percorso in cui vogliamo cambiare deve essere fornito come stringa a questo metodo. Possiamo usare sia la barra in avanti /che quella all'indietro per separare gli elementi del percorso.

È più sicuro utilizzare una sequenza di escape quando si utilizza la barra all'indietro.

 >>> os.chdir('C:\Python33') >>> print(os.getcwd()) C:Python33

Elenca directory e file

Tutti i file e le sottodirectory all'interno di una directory possono essere recuperati utilizzando il listdir()metodo.

Questo metodo accetta un percorso e restituisce un elenco di sottodirectory e file in quel percorso. Se non viene specificato alcun percorso, restituisce l'elenco di sottodirectory e file dalla directory di lavoro corrente.

 >>> print(os.getcwd()) C:Python33 >>> os.listdir() ('DLLs', 'Doc', 'include', 'Lib', 'libs', 'LICENSE.txt', 'NEWS.txt', 'python.exe', 'pythonw.exe', 'README.txt', 'Scripts', 'tcl', 'Tools') >>> os.listdir('G:\') ('$RECYCLE.BIN', 'Movies', 'Music', 'Photos', 'Series', 'System Volume Information')

Creazione di una nuova directory

Possiamo creare una nuova directory usando il mkdir()metodo.

Questo metodo accetta il percorso della nuova directory. Se il percorso completo non viene specificato, la nuova directory viene creata nella directory di lavoro corrente.

 >>> os.mkdir('test') >>> os.listdir() ('test')

Rinominare una directory o un file

Il rename()metodo può rinominare una directory o un file.

Per rinominare qualsiasi directory o file, il rename()metodo accetta due argomenti di base: il vecchio nome come primo argomento e il nuovo nome come secondo argomento.

 >>> os.listdir() ('test') >>> os.rename('test','new_one') >>> os.listdir() ('new_one')

Rimozione di directory o file

Un file può essere rimosso (cancellato) utilizzando il remove()metodo.

Allo stesso modo, il rmdir()metodo rimuove una directory vuota.

 >>> os.listdir() ('new_one', 'old.txt') >>> os.remove('old.txt') >>> os.listdir() ('new_one') >>> os.rmdir('new_one') >>> os.listdir() ()

Nota : il rmdir()metodo può rimuovere solo directory vuote.

Per rimuovere una directory non vuota, possiamo utilizzare il rmtree()metodo all'interno del shutilmodulo.

 >>> os.listdir() ('test') >>> os.rmdir('test') Traceback (most recent call last):… OSError: (WinError 145) The directory is not empty: 'test' >>> import shutil >>> shutil.rmtree('test') >>> os.listdir() ()

Articoli interessanti...