Python pathlib создает каталоги, если они не существуют
Если бы я хотел указать путь для сохранения файлов и создания каталогов, которые не существуют по этому пути, возможно ли это сделать с помощью библиотеки pathlib в одной строке кода?
4 ответа
Решение
Да это Path.mkdir
:
pathlib.Path('/tmp/sub1/sub2').mkdir(parents=True, exist_ok=True)
Добавление к ответу Вима. Если в конце вашего пути есть файл, который вы не хотите делать каталогом.
т.е. '/existing_dir/not_existing_dir/another_dir/a_file'
Затем вы используете PurePath.parents. Но приятно то, что, поскольку Пути наследуют атрибуты Чистых Путей, вы можете просто сделать
filepath = '/existing_dir/not_existing_dir/another_dir/a_file'
pathlib.Path(filepath).parents[0].mkdir(parents=True, exist_ok=True)
Это дает дополнительный контроль в случае, если путь уже существует:
path = Path.cwd() / 'new' / "hi" / "there"
try:
path.mkdir(parents=True, exist_ok=False)
except FileExistsError:
print("Folder is already there")
else:
print("Folder was created")
Универсальная функция для создания несуществующих каталогов/файлов.
def check_and_create_path(self, path: Path):
path_way = path.parent if path.is_file() else path
path_way.mkdir(parents=True, exist_ok=True)
if not path.exists():
path.touch()