Условие:
# Задача 2: Ведение журнала изменений файлов
Описание: Напишите скрипт, который:
1. Создает каталог log в текущем рабочем каталоге.
2. Создает файл changes.txt в каталоге log.
3. Записывает в файл changes.txt текущее время и дату при каждом изменении файла.
4. Через 10 секунд (используя time.sleep), переименовывает changes.txt в changesarchive.txt и закрывает программу.
from datetime import datetime
import time
os.mkdir("log")
with open("log/changes.txt", "w") as file:
datenow = datetime.now().replace(microsecond=0)
file.write(f"{datenow}")
time.sleep(10)
os.rename("log/changes.txt", "log/changesarchive.txt")
Решение:
Ниже привожу решение задачи с подробным пошаговым объяснением. Шаг 1. Импортируем необходимые модули. Для работы с датой и временем используем модуль datetime, для ожидания выполнения – модуль time, а для работы с файловой системой – модуль os. Шаг 2. Создаем каталог log в текущем рабочем каталоге с помощью функции os.mkdir. Если ка...
if not os.path.exists(log): os.mkdir(log) with open(log/changes.txt, w) as file: dateow = datetime.now().replace(microsecond=0) file.write(f{dateow}) # Шаг 4: Ждем 10 секунд time.sleep(10) os.rename(log/changes.txt, log/changesrchive.txt) -------------------------------------------------- Пошаговое объяснение: 1. Импортируем модули: - datetime для работы с датой и временем; - time для использования функции time.sleep; - os для работы с файловой системой (создание папок, переименование файлов). 2. Проверяем, существует ли каталог log. Если нет, создаем его с помощью os.mkdir. 3. Открываем файл log/changes.txt в режиме записи. В теле оператора with: - Получаем текущее время и дату с помощью datetime.now(), убираем микросекунды вызовом replace(microsecond=0) для более аккуратного вывода. - Записываем полученное значение в файл. 4. Сразу после записи файл «засыпает» на 10 секунд с помощью time.sleep(10). 5. После истечения паузы используя функцию os.rename переименовывается файл changes.txt в changesrchive.txt. Таким образом, журнал изменений переносится в архив. Данный скрипт выполняет все требования задачи.