Viga uue kataloogi loomisel os.mkdir() abil olematus kataloogis
os.mkdir()
Seda meetodit kasutatakse Pythonis kataloogi (kausta) loomiseks. Kui püüate luua uut kataloogi olematusse kataloogi, tekib viga.(FileNotFoundError
)
import os os.mkdir('not_exist_dir/new_dir') # FileNotFoundError
Luua kataloogid rekursiivselt os.madeirs() abil
Kui kasutate os.makedirs() asemel os.mkdir(), loob see vahekataloogi, nii et saate rekursiivselt luua sügava hierarhilise kataloogi.
os.makedirs('not_exist_dir/new_dir')
Selle näite puhul loob see kõik need korraga. See on OK, kui on mitu uut vahekataloogi.
- vahekataloog:
not_exist_dir
- lõplik kataloog:
new_dir
Kui lõppkataloog on aga juba olemas, tekib viga.(FileExistsError
)
os.makedirs('exist_dir/exist_dir') # FileExistsError
Kui on olemas argument exist_ok
Alates Python 3.2 on lisatud argument exist_ok ja kui exist_ok=True, ei teki viga isegi siis, kui lõppkataloog on juba olemas. Kui lõppkataloogi ei ole olemas, siis luuakse uus ja kui see on olemas, siis ei tehta midagi. See on mugav, sest lõppkataloogi olemasolu ei pea eelnevalt kontrollima.
os.makedirs('exist_dir/exist_dir', exist_ok=True)
Kui argument exist_ok puudub
Kui teil on Pythoni vanem versioon ja teil puudub os.madeirs'is argument exist_ok, võite kasutada os.path.exists'i, et teha kindlaks, kas lõppkataloog on olemas või mitte, ja luua uus kataloog ainult siis, kui lõppkataloogi ei ole.
if not os.path.exists('exist_dir/exist_dir'): os.makedirs('exist_dir/exist_dir')