makedirs til að búa til djúpar stigveldisskrár endurteknar í Python

Viðskipti

Villa við að búa til nýja möppu með os.mkdir() í möppu sem ekki er til

os.mkdir()Þetta er aðferðin sem notuð er til að búa til möppu (möppu) í Python. Ef þú reynir að búa til nýja möppu í möppu sem ekki er til mun villa koma upp.(FileNotFoundError)

import os

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

Búðu til möppur afturkvæmt með os.madeirs()

Ef þú notar os.makedirs() í stað os.mkdir() mun það búa til milliskrá, svo þú getur endurkvæmt búið til djúpa stigveldisskrá.

os.makedirs('not_exist_dir/new_dir')

Ef um þetta dæmi er að ræða mun það búa til þau öll í einu. Það er í lagi ef það eru margar nýjar milliskrár.

  • milliskrá:not_exist_dir
  • lokaskrá:new_dir

Hins vegar, ef lokaskráin er þegar til, mun villa koma upp.(FileExistsError)

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

Ef það eru rök til eru_ok

Síðan Python 3.2 hefur röksemdinni exist_ok verið bætt við og ef exist_ok=True mun engin villa eiga sér stað þó að lokaskráin sé þegar til. Ef lokaskráin er ekki til verður ný búin til og ef hún er til verður ekkert gert. Þetta er þægilegt vegna þess að þú þarft ekki að athuga tilvist flugstöðvarskrárinnar fyrirfram.

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

Ef rökin exist_ok vantar

Ef þú ert með eldri útgáfu af Python og ert ekki með rökin exist_ok í os.madeirs, geturðu notað os.path.exists til að ákvarða hvort það sé til lokamöppu eða ekki og búið svo til nýja bara ef það er engin enda skrá.

if not os.path.exists('exist_dir/exist_dir'):
    os.makedirs('exist_dir/exist_dir')
Copied title and URL