1. Главная
  2. Библиотека
  3. Информационные технологии
  4. # Задача 2: Ведение журнала изменений файлов Описание:...
Решение задачи на тему

# Задача 2: Ведение журнала изменений файлов Описание: Напишите скрипт, который: 1. Создает каталог log в текущем рабочем каталоге. 2. Создает файл changes.txt в каталоге log. 3. Записывает в файл changes.txt текущее время и дату при каждом изменении

  • Информационные технологии
  • #Системное программирование
  • #Операционные системы
# Задача 2: Ведение журнала изменений файлов Описание: Напишите скрипт, который: 1. Создает каталог log в текущем рабочем каталоге. 2. Создает файл changes.txt в каталоге log. 3. Записывает в файл changes.txt текущее время и дату при каждом изменении

Условие:

# Задача 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 для работы с файловой системой (создание папок, переименование файлов).
  1. Проверяем, существует ли каталог log. Если нет, создаем его с помощью os.mkdir.

  2. Открываем файл log/changes.txt в режиме записи. В теле оператора with:

  • Получаем текущее время и дату с помощью datetime.now(), убираем микросекунды вызовом replace(microsecond=0) для более аккуратного вывода.
  • Записываем полученное значение в файл.
  1. Сразу после записи файл «засыпает» на 10 секунд с помощью time.sleep(10).

  2. После истечения паузы используя функцию os.rename переименовывается файл changes.txt в changesrchive.txt. Таким образом, журнал изменений переносится в архив.

Данный скрипт выполняет все требования задачи.

Выбери предмет