makedirs Python тілінде терең иерархиялық каталогтарды рекурсивті түрде жасау үшін

Іскерлік

Бар емес каталогта os.mkdir() көмегімен жаңа каталог жасау кезіндегі қате

os.mkdir()Бұл Python тілінде каталог (қалта) жасау үшін қолданылатын әдіс. Егер жоқ каталогта жаңа каталог жасауға әрекет жасасаңыз, қате пайда болады.(FileNotFoundError)

import os

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

os.madeirs() көмегімен каталогтарды рекурсивті түрде жасаңыз.

os.mkdir() орнына os.makedirs() пайдалансаңыз, ол аралық каталогты жасайды, осылайша терең иерархиялық каталогты рекурсивті түрде жасай аласыз.

os.makedirs('not_exist_dir/new_dir')

Бұл мысалда ол олардың барлығын бірден жасайды. Бірнеше жаңа аралық каталогтар болса, жақсы.

  • аралық каталог:not_exist_dir
  • соңғы каталог:new_dir

Дегенмен, соңғы каталог бұрыннан бар болса, қате орын алады.(FileExistsError)

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

Аргумент болса бар_жарайды

Python 3.2 нұсқасынан бері exist_ok аргументі қосылды және exist_ok=True болса, соңғы каталог бұрыннан бар болса да, қате болмайды. Егер соңғы каталог жоқ болса, жаңасы жасалады, ал бар болса, ештеңе жасалмайды. Бұл ыңғайлы, себебі терминал каталогының бар-жоғын алдын ала тексерудің қажеті жоқ.

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

Егер exist_ok аргументі жоқ болса

Егер сізде Python бағдарламасының ескі нұсқасы болса және os.madeirs ішінде exist_ok аргументі болмаса, соңғы каталогтың бар-жоғын анықтау үшін os.path.exists пайдалана аласыз, содан кейін ол жоқ болса ғана жаңасын жасай аласыз. соңғы каталог.

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