makedirs mély hierarchikus könyvtárak rekurzív létrehozásához Pythonban

Üzleti

Hiba új könyvtár létrehozásakor az os.mkdir() segítségével egy nem létező könyvtárban

os.mkdir()Ez a Pythonban egy könyvtár (mappa) létrehozására használt módszer. Ha nem létező könyvtárban próbálsz új könyvtárat létrehozni, hibaüzenet jelenik meg.(FileNotFoundError)

import os

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

Könyvtárak létrehozása rekurzívan az os.madeirs() segítségével

Ha az os.mkdir() helyett az os.makedirs() parancsot használod, akkor létrehoz egy köztes könyvtárat, így rekurzívan létrehozhatsz egy mély hierarchikus könyvtárat.

os.makedirs('not_exist_dir/new_dir')

A példa esetében az összeset egyszerre hozza létre. Nem baj, ha több új közbenső könyvtárat is létrehoz.

  • köztes könyvtár: not_exist_dir
  • végső könyvtár: new_dir

Ha azonban a végkönyvtár már létezik, hiba lép fel.(FileExistsError)

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

Ha van argumentum exist_ok

A Python 3.2 óta az exist_ok argumentummal egészül ki, és ha az exist_ok=True, akkor sem lép fel hiba, ha a végkönyvtár már létezik. Ha a végkönyvtár nem létezik, akkor egy újat hoz létre, ha pedig létezik, akkor nem történik semmi. Ez azért kényelmes, mert nem kell előre ellenőrizni a végkönyvtár létezését.

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

Ha az exist_ok argumentum hiányzik

Ha a Python régebbi verziója van, és nincs meg az os.madeirsben az exist_ok argumentum, akkor az os.path.exists segítségével meghatározhatja, hogy van-e végkönyvtár, és csak akkor hoz létre újat, ha nincs végkönyvtár.

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