makedirs kuunda saraka za kina za uongozi kwa kujirudia katika Python

Biashara

Hitilafu wakati wa kuunda saraka mpya na os.mkdir() katika saraka ambayo haipo

os.mkdir()Hii ndio njia inayotumiwa kuunda saraka (folda) kwenye Python. Ukijaribu kuunda saraka mpya katika saraka ambayo haipo, hitilafu itatokea.(FileNotFoundError)

import os

os.mkdir('not_exist_dir/new_dir')
# FileNotFoundError

Unda saraka kwa kujirudia na os.madeirs()

Ikiwa unatumia os.makedirs() badala ya os.mkdir(), itaunda saraka ya kati, kwa hivyo unaweza kuunda saraka ya kina ya hierarkia kwa kujirudia.

os.makedirs('not_exist_dir/new_dir')

Katika kesi ya mfano huu, itaunda wote mara moja. Ni sawa ikiwa kuna saraka nyingi mpya za kati.

  • saraka ya kati:not_exist_dir
  • saraka ya mwisho:new_dir

Walakini, ikiwa saraka ya mwisho iko tayari, hitilafu itatokea.(FileExistsError)

os.makedirs('exist_dir/exist_dir')
# FileExistsError

Ikiwa kuna hoja exist_ok

Tangu Python 3.2, hoja exist_ok imeongezwa, na ikiwa exist_ok=Kweli, hakuna kosa litakalotokea hata ikiwa saraka ya mwisho tayari iko. Ikiwa saraka ya mwisho haipo, mpya itaundwa, na ikiwa iko, hakuna kitu kitafanyika. Hii ni rahisi kwa sababu hauitaji kuangalia uwepo wa saraka ya wastaafu mapema.

os.makedirs('exist_dir/exist_dir', exist_ok=True)

Ikiwa hoja ipo_ok haipo

Ikiwa unayo toleo la zamani la Python na huna hoja exist_ok katika os.madeirs, unaweza kutumia os.path.exists kuamua ikiwa kuna saraka ya mwisho au la, na kisha kuunda mpya ikiwa hakuna. saraka ya mwisho.

if not os.path.exists('exist_dir/exist_dir'):
    os.makedirs('exist_dir/exist_dir')