Памылка пры стварэнні новага каталога з дапамогай os.mkdir() у неіснуючым каталогу
os.mkdir()
Гэта метад, які выкарыстоўваецца для стварэння каталога (папкі) у Python. Калі вы паспрабуеце стварыць новы каталог у неіснуючым каталогу, адбудзецца памылка.(FileNotFoundError
)
import os os.mkdir('not_exist_dir/new_dir') # FileNotFoundError
Стварайце каталогі рэкурсіўна з дапамогай os.madeirs()
Калі вы выкарыстоўваеце os.makedirs() замест os.mkdir(), гэта створыць прамежкавы каталог, так што вы можаце рэкурсіўна стварыць глыбокі іерархічны каталог.
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)
Калі аргумент існуе_ок адсутнічае
Калі ў вас старэйшая версія Python і няма аргумента exist_ok у os.madeirs, вы можаце выкарыстоўваць os.path.exists, каб вызначыць, ці ёсць канчатковы каталог, а затым стварыць новы, толькі калі яго няма канчатковы каталог.
if not os.path.exists('exist_dir/exist_dir'): os.makedirs('exist_dir/exist_dir')