Подскажите по файлу / каталогу удалить

При написании кода на 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() . Проверьте документы для получения дополнительной информации

Ну, вы можете сохранить эту функцию в модуле и использовать ее в других модулях, и ваша проблема будет решена!

Другие вопросы по тегам