При кодировании в Python мне часто нужно написать такую функцию, как эта:
def delete_dir(dir_name):
if os.path.exists(dir_name):
reply = raw_input("Delete directory "+dir_name+"? [y/[n]] ")
if reply=='y':
os.system('rm -r '+dir_name)
else:
print "Aborting..."
sys.exit()
В основном это просто команда удаления с приглашением пользователя для двойной проверки (у меня также есть один для удаления файлов). Учитывая большое количество модулей Python, в том числе в стандартной библиотеке, мне интересно, существует ли что-то подобное уже здесь?
Это не будет Python, но если вы продолжаете использовать os.system() для вызова delete, вы можете передать параметр -i
на rm
. Страница руководства объясняет это:
-i запрос перед каждым удалением
EDIT: я просто прочитал ваш код еще раз, и похоже, что вы запрашиваете только один раз перед всем процессом удаления, а не для каждого файла. Вместо этого вам может быть интересен флаг -i
:
-I запросить один раз перед удалением более трех файлов или когда удаление рекурсивно. Менее интрузивный чем -i, сохраняя при этом защиту против большинства ошибок
чтобы удалить каталог, используйте os module os.rmdir(), os.removedirs(). Или shutil.rmtree(). Проверьте документы для получения дополнительной информации.
ну, вы можете сохранить эту функцию в модуле и повторно использовать ее в других модулях, таким образом, ваша проблема будет решена!