Подскажите по файлу / каталогу удалить - PullRequest
1 голос
/ 17 января 2010

При кодировании на 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 ]

2 голосов
/ 17 января 2010

Это не будет Python, но если вы продолжите использовать os.system () для вызова удаления, вы можете передать параметр -i в rm. Справочная страница объясняет это:

-i подсказывать перед каждым удалением

РЕДАКТИРОВАТЬ: я просто снова прочитал ваш код, и похоже, что вы запрашиваете только один раз перед всем процессом удаления, а не для каждого файла. Возможно, вас заинтересует флаг -I:

-Я запрашиваю один раз перед удалением более трех файлов, или когда удаление рекурсивно. Менее навязчивый чем-я, все еще давая защиту против большинства ошибок

1 голос
/ 17 января 2010

, чтобы удалить каталог, используйте модуль os os.rmdir (), os.removedirs (). Или shutil.rmtree (). Проверьте документы для получения дополнительной информации

0 голосов
/ 17 января 2010

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

...