Подскажите по файлу / каталогу удалить
При написании кода на 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, в том числе в стандартной библиотеке, мне интересно, существует ли уже что-то подобное?
3 ответа
Это не будет Python, но если вы продолжите использовать os.system() для вызова удаления, вы можете передать -i
параметр для rm
, Справочная страница объясняет это:
-Я подскажу перед каждым удалением
РЕДАКТИРОВАТЬ: я просто прочитал ваш код еще раз, и похоже, что вы запрашиваете только один раз перед всем процессом удаления, а не для каждого файла. Вы можете быть заинтересованы в -I
флаг вместо:
-Я запрашиваю один раз перед удалением более трех файлов или при рекурсивном удалении. Менее навязчив, чем -i, но при этом защищает от большинства ошибок
Чтобы удалить каталог, используйте модуль os os.rmdir(), os.removedirs(). Или shutil.rmtree() . Проверьте документы для получения дополнительной информации
Ну, вы можете сохранить эту функцию в модуле и использовать ее в других модулях, и ваша проблема будет решена!