#python #directory
Вопрос:
Я хочу, чтобы моя программа на python удаляла деревья каталогов, которые были созданы программой во время предыдущего выполнения. Я беспокоюсь, что если в программе есть ошибка, использующая shutil.rmtree
migth, удалите гораздо больше, чем предполагалось, с катастрофическими последствиями. Существуют ли какие-либо лучшие методы того, как этого избежать?
У меня были следующие идеи, но они не кажутся мне очень элегантными:
- Точно определите каждый файл, созданный программой, и удалите их один за другим, а затем удалите пустые каталоги.
- Определение размера или количества файлов каталога и наложение на них верхней границы. (Например, удаляйте только папки размером менее 5 МБ и менее 100 файлов.)
Комментарии:
1. Если ваша программа создает временные файлы/каталоги, которые вы должны удалить впоследствии, почему бы не создать их с помощью tempfile ?
2. @VladSiv Файлы являются результатами работы программы, и я хочу удалить их только в том случае, если новый запуск приведет к новым результатам.
3. Может ли ваша программа затем перезаписать старые выходные данные? Это решило бы проблему с удалением.
4. @VladSiv Дерево файлов результатов может измениться в зависимости от ввода, что означает, что некоторые устаревшие файлы могут не быть перезаписаны, если я их каким-то образом не удалю.