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 os
modulo 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 os
modulo.
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 shutil
modulo.
>>> 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() ()