В настоящее время я провожу некоторые эксперименты на python и у меня есть несколько ноутбуков Jupyter для оценки.Я запускаю каждый эксперимент несколько раз и с разными параметрами, поэтому структура папок выглядит примерно так:
root
|-- .ipynb_checkpoints
|-- idea 1
| |-- .ipynb_checkpoints
| |-- run 1
| | |-- .ipynb_checkpoints
| | |-- results & evaluation
| |-- run 2
| | |-- .ipynb_checkpoints
| | ...
| ...
|-- idea 2
| |-- .ipynb_checkpoints
| ...
...
Когда я архивирую эксперименты, я хочу избавиться от .ipynb_checkpoints папки, так как они больше не нужны, на мой взгляд.Для этого я написал быстрый и грязный маленький скрипт.
import re
from os import walk
from shutil import rmtree
r = re.compile('(^.*\.ipynb_checkpoints$)')
dirs = []
for dirpath, _, _ in os.walk('.', topdown=True):
if r.match(dirpath):
dirs.append(dirpath)
for d in dirs:
shutil.rmtree(d)
По сути, я создаю регулярное выражение, соответствующее желаемому имени папки, просматриваю все подпапки, сохраняю путь в dir , а затемвторой цикл, чтобы удалить все папки .ipynb_checkpoints .Скрипт работает отлично.Однако я не удовлетворен кодом, особенно двумя for-loop .
Поскольку я все еще учусь программировать, я спрашиваю себя, есть ли более питоническийспособ сделать это.Любой комментарий о том, как сделать код быстрее (хотя сценарий в настоящее время занимает меньше секунды), питонский или выглядит чище, приветствуется.Спасибо за вашу помощь!