Error en crear un directori nou amb os.mkdir() en un directori inexistent
os.mkdir()
Aquest és el mètode utilitzat per crear un directori (carpeta) en Python. Si intenteu crear un directori nou en un directori inexistent, es produirà un error.(FileNotFoundError
)
import os os.mkdir('not_exist_dir/new_dir') # FileNotFoundError
Creeu directoris de manera recursiva amb os.madeirs()
Si utilitzeu os.makedirs() en comptes d’os.mkdir(), crearà un directori intermedi, de manera que podeu crear recursivament un directori jeràrquic profund.
os.makedirs('not_exist_dir/new_dir')
En el cas d’aquest exemple, els crearà tots alhora. Està bé si hi ha diversos directoris intermedis nous.
- directori intermedi:
not_exist_dir
- directori final:
new_dir
Tanmateix, si el directori final ja existeix, es produirà un error.(FileExistsError
)
os.makedirs('exist_dir/exist_dir') # FileExistsError
Si hi ha un argument exist_ok
Des de Python 3.2, s’ha afegit l’argument exist_ok, i si exist_ok=True, no es produirà cap error encara que el directori final ja existeixi. Si el directori final no existeix, se’n crearà un de nou i, si existeix, no es farà res. Això és convenient perquè no cal que comproveu l’existència del directori del terminal per endavant.
os.makedirs('exist_dir/exist_dir', exist_ok=True)
Si falta l’argument exist_ok
Si teniu una versió anterior de Python i no teniu l’argument exist_ok a os.madeirs, podeu utilitzar os.path.exists per determinar si hi ha o no un directori final i, a continuació, crear-ne un de nou només si no n’hi ha. directori final.
if not os.path.exists('exist_dir/exist_dir'): os.makedirs('exist_dir/exist_dir')