3. Le Cartelle in Python
In questa lezione vedremo come creare, rinominare, spostare le cartelle e conoscerne il contenuto nei nostri programmi Python utilizzando i moduli della standard library os e shutil.
import os, shutil
Come creare, rinominare e conoscere il contenuto delle cartelle con il modulo os
Anzitutto è bene sapere in che cartella ci troviamo, per fare questo utilizziamo il metodo getcwd() di os:
os.getcwd() # getcwd sta per Get Current Working Directory
Questo metodo restituisce la cartella di lavoro in cui ci si trova attualmente: se provate questo comando su Windows, otterrete la cartella di lavoro di default di Python.
Una volta che sappiamo in che cartella ci troviamo, è utile conoscerne il contenuto, che possiamo ottenere grazie a un altro metodo di os: listdir(). Questa funzione ci mostra un elenco degli elementi e delle sottocartelle presenti nella cartella in cui stiamo operando. Possiamo spostarci da una cartella all'altra utilizzando:
os.chdir("C:\\") # chdir sta per CHange DIRectory
Possiamo creare una o più cartelle con os.makedirs():
os.makedirs("C:\\nuova__cartella")
os.makedirs("C:\\lezione21\\informatica")
os.makedirs("C:\\lezione21\\sistemi")
os.makedirs("C:\\lezione21\\security")
Anche rinominare è facilissimo grazie a os.rename():
os.rename("nuova__cartella","lezione21")
Come spostare, copiare ed eliminare cartelle con il modulo shutil
Per spostare una cartella con relativi file, utilizziamo la funzione move() di shutil:
shutils.move("C:\\lezione21\\security", "C:\\lezione21\\informatica\\")
"C:\\lezione21\\informatica\\security"
Mentre volendo invece copiare una cartella con relative sottocartelle facciamo:
shutil.copytree("C:\\lezione20","C:\\lezione21\\lezione20copia")
Alla funzione passiamo stavolta il nome di una nuova cartella in cui vogliamo effettuare la copia, e copytree() creerà eventuali cartelle intermedie.
Infine la funzione più potente di tutte!
Volendo eliminare un intero albero di cartelle e relativi file usiamo rmtree():
shutil.rmtree("lezione21\\lezione20copia")