Я определил пользовательскую функцию на основе модуля pathlib
в своем скрипте Python (3.x):
def mk_dir(self):
self.mkdir(parents=True,exist_ok=True)
my_path = Path('./1/2/3/')
mk_dir(my_path)
как сокращение для создания нового каталога с функцией pathlib.Path.mkdir()
.
Эта функция создаст все недостающие родители данного пути (parents=True
) и не вызовет ошибку, если каталог уже существует (exist_ok=True
).
Однако я бы хотел изменитьмоя функция, чтобы она работала как связанная функция, т.е. my_path.mk_dir()
;вместо традиционного метода, передавая переменную, т. е. mk_dir(my_path)
.
Я попытался сделать это следующим образом:
from pathlib import Path
class Path():
def mk_dir(self):
self.mkdir(parents=True,exist_ok=True)
return self
my_path = Path('./1/2/3/')
my_path.mk_dir()
но лучшее, что я получаю, это ошибка:
AttributeError: 'WindowsPath' object has no attribute 'mk_dir'
Как этого добиться, не изменяя сам исходный файл модуля?
И я не уверен в следующих вопросах:
- Нужно ли
class
определены? - Нужно ли функции что-либо возвращать?
- И лучше ли сначала проверить, существует ли каталог с помощью
if not my_path.is_dir(): ...
или "нормально" использовать exist_ok=True
атрибут?