Tutte le funzioni nel modulo del sistema operativo 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. In questo articolo vedremo come creare directory ricorsivamente utilizzando il modulo os e anche il metodo os.makedirs().
Sintassi della funzione Python os.makedirs()
Sintassi: os.makedirs(percorso, modalità = 0o777, esiste_ok = False)
Parametro:
- sentiero : un oggetto simile a un percorso che rappresenta un percorso del file system. Un oggetto simile a un percorso è un oggetto stringa o byte che rappresenta un percorso.
- modalità (opzionale): un valore intero che rappresenta la modalità della directory appena creata. Se questo parametro viene omesso, viene utilizzato il valore predefinito Oo777.
- esistere_ok (facoltativo): per questo parametro viene utilizzato il valore predefinito False. Se la directory di destinazione esiste già, viene sollevato un messaggio OSError se il suo valore è False altrimenti no. Per il valore True lascia la directory inalterata.
Tipo di reso: Questo metodo non restituisce alcun valore.
Metodo os.makedirs() in Python
os.makedirs() metodo dentro Pitone 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, os.makedirs() il metodo li creerà tutti.
Consideriamo ad esempio il seguente percorso:
/home/User/Documents/GeeksForGeeks/Authors/ihritik>
Supponiamo di voler creare la directory 'ihritik' ma la directory 'GeeksForGeeks' e 'Autori' non sono disponibili nel percorso. Poi os.makedirs() Il metodo creerà tutte le directory non disponibili/mancanti nel percorso specificato. Verranno creati prima 'GeeksForGeeks' e 'Autori', quindi verrà creata la directory 'ihritik'.
Esempi di funzioni Python os.makedirs()
Di seguito sono riportati alcuni esempi della funzione os.makedirs() tramite la quale possiamo vedere come creare directory in modo ricorsivo utilizzando la funzione modulo del sistema operativo :
Creazione della directory utilizzandoos.makedirs()>
In questo esempio, ilos.makedirs()>viene utilizzato per creare directory nidificate. La prima sezione crea una directory denominata ihritik all'interno del percorso della directory Authors. La seconda sezione, con le autorizzazioni specificate, crea una directory c annidata all'interno di techcodeview.com/a/b.
Python3
import> os> # Leaf directory> directory>=> 'ihritik'> # Parent Directories> parent_dir>=> '/home/User/Documents/GeeksForGeeks/Authors'> # Path> path>=> os.path.join(parent_dir, directory)> # Create the directory 'ihritik'> os.makedirs(path)> print>(>'Directory '%s' created'> %> directory)> # Leaf directory> directory>=> 'c'> # Parent Directories> parent_dir>=> '/home/User/Documents/techcodeview.com/a/b'> # mode> mode>=> 0o666> path>=> os.path.join(parent_dir, directory)> os.makedirs(path, mode)> print>(>'Directory '%s' created'> %> directory)> |
>
>
Produzione:
Directory 'ihritik' created Directory 'c' created>
Errori durante l'utilizzo del metodo os.makedirs()
In questo esempio, ilos.makedirs()>Il metodo tenta di creare una directory denominata ihritik all'interno del percorso GeeksForGeeks. Se la directory esiste già, il metodo solleva un fileOSError>. Una volta creata con successo, viene stampato un messaggio di conferma.
metodo sottostringa in Java
Python3
import> os> # Directory> directory>=> 'ihritik'> # Parent Directory path> parent_dir>=> '/home/User/Documents/GeeksForGeeks'> # Path> path>=> os.path.join(parent_dir, directory)> # Create the directory 'ihritik'> os.makedirs(path)> print>(>'Directory '%s' created'> %> directory)> |
>
>
Produzione:
Traceback (most recent call last): File 'makedirs.py', line 21, in os.makedirs(path) File '/usr/lib/python3.6/os.py', line 220, in makedirs mkdir(name, mode) FileExistsError: [Errno 17] File exists: '/home/User/Documents/GeeksForGeeks/ihritik'>
Gestione degli errori durante l'utilizzo del metodo os.makedirs()
In questo esempio, ilos.makedirs()>il metodo viene utilizzato con ilexist_ok>parametro impostato suTrue>sopprimereOSError>se la directory esiste già. Se la directory non esiste, verrà creata. Tuttavia, altroOSError>eccezioni, come un nome di percorso non valido, possono comunque essere sollevate e devono essere gestite separatamente.
Python3
import> os> # Directory> directory>=> 'ihritik'> # Parent Directory path> parent_dir>=> '/home/ihritik/Desktop/GeeksForGeeks'> # Path> path>=> os.path.join(parent_dir, directory)> # Create the directory 'ihritik'> try>:> >os.makedirs(path, exist_ok>=>True>)> >print>(>'Directory '%s' created successfully'> %> directory)> except> OSError as error:> >print>(>'Directory '%s' can not be created'>)> |
>
>
Produzione:
Directory 'ihritik' created successfully>