Var olmayan bir dizinde os.mkdir() ile yeni bir dizin oluştururken hata oluştu
os.mkdir()
Python’da bir dizin (klasör) oluşturmak için kullanılan yöntem budur. Var olmayan bir dizinde yeni bir dizin oluşturmaya çalışırsanız bir hata oluşacaktır.(FileNotFoundError
)
import os os.mkdir('not_exist_dir/new_dir') # FileNotFoundError
os.madeirs() ile özyinelemeli dizinler oluşturun
os.mkdir() yerine os.makedirs() kullanırsanız, bir ara dizin oluşturur, böylece yinelemeli olarak derin bir hiyerarşik dizin oluşturabilirsiniz.
os.makedirs('not_exist_dir/new_dir')
Bu örnek durumunda, hepsini bir kerede oluşturacaktır. Birden fazla yeni ara dizin varsa sorun değil.
- ara dizin:
not_exist_dir
- son dizin:
new_dir
Ancak, bitiş dizini zaten varsa, bir hata oluşur.(FileExistsError
)
os.makedirs('exist_dir/exist_dir') # FileExistsError
Bir argüman varsa var_ok
Python 3.2’den beri, mevcut_ok argümanı eklenmiştir ve mevcut_ok=Doğru ise, son dizin zaten mevcut olsa bile hiçbir hata oluşmayacaktır. Bitiş dizini yoksa, yeni bir tane oluşturulacak ve varsa hiçbir şey yapılmayacaktır. Bu uygundur çünkü önceden terminal dizininin varlığını kontrol etmenize gerek yoktur.
os.makedirs('exist_dir/exist_dir', exist_ok=True)
Mevcut_ok argümanı eksikse
Python’un daha eski bir sürümüne sahipseniz ve os.madeirs’de allow_ok argümanına sahip değilseniz, bir bitiş dizini olup olmadığını belirlemek için os.path.exists’i kullanabilir ve ardından yalnızca yoksa yeni bir tane oluşturabilirsiniz. bitiş dizini.
if not os.path.exists('exist_dir/exist_dir'): os.makedirs('exist_dir/exist_dir')