Найти - Пользователи
Полная версия: Нужен скрипт на Питон очистка содержимого папки
Начало » Центр помощи » Нужен скрипт на Питон очистка содержимого папки
1
ITadm_ptn
Добрый день!

Нужен скрипт, который бы подсчитывал кол-во файлов в дирректории, и в ней удалял файлы, не стирая подпапки.

Цель: Создание скрипта, удаляющего файлы в указанной дирректории, без удаления подпапок, и вывод в report.txt: 20.07.2018 Задача: Очистка папки Название* 22:00 Выполнено, удалено: Кол-во файлов*
В Идеале еще иметь закомментированный кусок кода где можно было б прописывать путь к папке которую не тереть.

Может у кого что то готовое есть?
Скрипт на Windows будет запускаться

P.S. Cash reward is possible


ITadm_ptn
import os, shutil
folder = ‘/path/to/folder’
for the_file in os.listdir(folder):
file_path = os.path.join(folder, the_file)
try:
if os.path.isfile(file_path):
os.unlink(file_path)
#elif os.path.isdir(file_path): shutil.rmtree(file_path)
except Exception as e:
print(e)

источник: http://python.su/forum/topic/35588/

Кто может разжевать по полкам чего он делает?
PEHDOM
 import os, shutil # импорт модулей os, shutil
folder = '/path/to/folder' # переменная где храним путь к папке
for the_file in os.listdir(folder): # для каждого элемента the_file  в папке folder
    file_path = os.path.join(folder, the_file) # плоучаем полный путь к файлу
    try:
       if os.path.isfile(file_path):  # Если это файл
        os.unlink(file_path)  # пробуем его удалить
    except Exception as e: #если удалить не вышло
        print(e)      # выводим текст ошибки
ITadm_ptn
это где половина от того что нужно, как реализовать подсчет файлов, и вывод сообщения как описано в шаке?
я так понимаю перед try, должен быть подсчет файлов,
а вывод после последней записи print (e):?

а эта запись - #elif os.path.isdir(file_path): shutil.rmtree(file_path) ?
PEHDOM
ITadm_ptn
а эта запись - #elif os.path.isdir(file_path): shutil.rmtree(file_path)
закоментировано, если это папка то удалить всю папку и все подпапки в ней
ITadm_ptn
как реализовать подсчет файлов, и вывод сообщения как описано в шаке?
Подсчет реализуется счетчиком (отдельная перменная к которой добавляем 1 если это файл).
if os.path.isfile(file_path): вынести из try: в try: оставить только os.unlink…. и сам блок try-except поместить в if…:
Вывод в самом конце после того как отработает for the_file in os.listdir(folder):
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB