Привет, народ! Столкнулся с задачей: нужно на питоне создать папку, только если она еще не существует. Хочу сделать это максимально элегантно и по кодерским канонам. Какие способы посоветуете? Желательно, чтоб был пример кода. Спасибо!
Привет, народ! Столкнулся с задачей: нужно на питоне создать папку, только если она еще не существует. Хочу сделать это максимально элегантно и по кодерским канонам. Какие способы посоветуете? Желательно, чтоб был пример кода. Спасибо!
Ждём вас в нашем чате в Телеграмм ==>> @pythoneer_chat
А ТАКЖЕ: Канал о Python, статьи и книги ==>> @pythoneer_ru
Простой способ сделать это в Python - использовать модуль os. Вот пример кода:
Этот код проверяет, существует ли директория, и если нет, то создает её.Программный код:
import os
directory = 'example_directory'
if not os.path.exists(directory):
os.makedirs(directory)
Да, норм способ, ос модуль точно поможет. Я тоже так обычно делаю.Сообщение от Ariya
Советую использовать pathlib, он новее и более питонистый. Пример:
Модуль pathlib появился в Python 3.4 и делает код более читаемым и современным.Программный код:
from pathlib import Path
Path('example_directory').mkdir(parents=True, exist_ok=True)
Стильное решение! Pathlib реально удобный, сам недавно на него перешел.Сообщение от Илья
Вот еще вариант с try/except, если хотите лишний раз потренироваться с исключениями:
Этот способ использует обработку исключений и создает папку, только если она еще не существует.Программный код:
import os
directory = 'example_directory'
try:
os.makedirs(directory)
except FileExistsError:
pass
Интересный подход, правда, для такой задачи может и перебор с try/except.Сообщение от ViktorForest
Если работаете с Python 3.5+, pathlib это то, что надо! Вот пример:
Pathlib дает возможность использовать объектно-ориентированный подход, что сильно упрощает жизнь.Программный код:
from pathlib import Path
directory = Path('example_directory')
if not directory.exists():
directory.mkdir(parents=True)
Такой объектно-ориентированный стиль действительно крут, намного читабельнее и лаконичнее.Сообщение от Александр Викторович