Как удалить файлы и создать файл журнала удаленного контента? - PullRequest
0 голосов
/ 09 февраля 2020

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

Например, у меня есть файл a.log и b.log в папке 'C:\SampleFolder', и я удаляю оба файла из этой папки, используя следующий скрипт. Поэтому их имена 'a.log' и 'b.log' должны храниться в файле 'delete.log' с датой и временем.

Какие модификации я должен сделать в своем коде или какую функцию или библиотеку я должен использовать для этой цели?

import os, time, sys

folder_path = "C:\SampleFolder"
file_ends_with = ".log"
how_many_days_old_logs_to_remove = 7

now = time.time()
only_files = []

for file in os.listdir(folder_path):
    file_full_path = os.path.join(folder_path,file)
    if os.path.isfile(file_full_path) and file.endswith(file_ends_with):
        #Delete files older than x days
        if os.stat(file_full_path).st_mtime < now - how_many_days_old_logs_to_remove * 86400: 
             os.remove(file_full_path)
             print "\n File Removed : " , file_full_path

1 Ответ

0 голосов
/ 24 февраля 2020

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

import logging.handlers
import logging

handler = logging.handlers.WatchedFileHandler("/path/to/storage/file/my_app.log")

# define format of the log, in this case just a date & time with the log message
formatter = logging.Formatter("%(asctime)s;%(message)s")

# attach new formratter
handler.setFormatter(formatter)

# get logger instance and update its settings
logger = logging.getLogger()
logger.setLevel("INFO")
logger.addHandler(handler)

# now just log away
logging.info("File deleted: {}".format("your_file.log"))

Вы можете добавить приведенный выше фрагмент в вашу программу и оттуда записать то, что вам нужно - он будет записан в указанный вами файл. Подробнее о ведении журнала читайте в Python документах .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...