Ik ben in de war om deze twee os
methoden te gebruiken om de nieuwe map te maken.
Geef me een voorbeeld in Python.
Antwoord 1, autoriteit 100%
makedirs()
maakt alle tussenliggende mappenals ze niet bestaan (net als mkdir -p
in bash).
mkdir()
kan een enkele submap maken en zal een uitzondering genereren als er tussenliggende mappen worden opgegeven die niet bestaan.
Beide kunnen worden gebruikt om een enkele ‘blad’-directory (dirA) te maken:
os.mkdir('dirA')
os.makedirs('dirA')
Maar makedirs moeten worden gebruikt om ‘takken’ te maken:
os.makedirs('dirA/dirB')
zal werken [de hele structuur is gemaakt]
mkdir
kan hier werken alsdirA
al bestaat, maar als dat niet het geval is, wordt er een fout gegenereerd.
Merk op dat, in tegenstelling tot mkdir -p
in bash, beide zullen mislukken als het blad al bestaat.
Antwoord 2, autoriteit 20%
(Kan geen commentaar geven, alleen toevoegen aan het antwoord van NPE.)
In Python3 heeft os.makedirs
een standaardparameter exist_ok=False
.
Als je het instelt op True
, zal os.makedirs
geeneen uitzondering genereren als het blad bestaat.
(Terwijl os.mkdir
deze parameter niet heeft.)
Zo:
os.makedirs('dirA', exist_ok=True)
P.S.
U kunt ?
typen voor de naam van een methode in de IPython-shell om de documentatie snel te bekijken.
bijv.:
>>> import os
>>> ? os.makedirs