Erro ao criar um novo directório com os.mkdir() num directório inexistente
os.mkdir()
Este é o método utilizado para criar um directório (pasta) em Python. Se se tentar criar um novo directório num directório inexistente, ocorrerá um erro.(FileNotFoundError
)
import os os.mkdir('not_exist_dir/new_dir') # FileNotFoundError
Criar directórios recursivamente com os.madeirs()
Se utilizar os.makedirs() em vez de os.mkdir(), criará um directório intermédio, para que possa criar recursivamente um directório hierárquico profundo.
os.makedirs('not_exist_dir/new_dir')
No caso deste exemplo, irá criar todos de uma só vez. Não há problema se houver múltiplos novos directórios intermediários.
- directório intermédio:
not_exist_dir
- directório final:
new_dir
No entanto, se o directório final já existir, ocorrerá um erro.(FileExistsError
)
os.makedirs('exist_dir/exist_dir') # FileExistsError
Se existe um argumento_ok
Desde Python 3.2, o argumento exist_ok foi adicionado, e se exist_ok=True, nenhum erro ocorrerá mesmo que o directório final já exista. Se o directório final não existir, será criado um novo, e se ele existir, nada será feito. Isto é conveniente porque não é necessário verificar previamente a existência do directório de terminais.
os.makedirs('exist_dir/exist_dir', exist_ok=True)
Se o argumento existir_ok está em falta
Se tiver uma versão mais antiga de Python e não tiver o argumento existe_ok em os.madeirs, pode usar os.path.exists para determinar se existe ou não um directório final, e depois criar um novo apenas se não existir um directório final.
if not os.path.exists('exist_dir/exist_dir'): os.makedirs('exist_dir/exist_dir')