Создание файла с именем текущего времени и даты в Python

Пройдите тест, узнайте какой профессии подходите

Я предпочитаю
0%
Работать самостоятельно и не зависеть от других
Работать в команде и рассчитывать на помощь коллег
Организовывать и контролировать процесс работы

Быстрый ответ

Чтобы сгенерировать имя файла с текущей датой и временем в Python, примените модуль datetime и его метод strftime. Вот пример такого имени файла:

Python
Скопировать код
from datetime import datetime

filename = datetime.now().strftime("file_%Y-%m-%d_%H-%M-%S.txt")
print(filename)  # Например, "file_2023-03-25_14-30-45.txt"

А итоге получается имя файла по схеме file_ГГГГ-ММ-ДД_ЧЧ-ММ-СС.txt.

Кинга Идем в IT: пошаговый план для смены профессии

Использование strftime для форматирования даты и времени

Метод strftime позволяет настроить формат времени, соответствующий вашим требованиям:

  • %Y: год в формате четырех цифр
  • %m: номер месяца
  • %d: дата месяца
  • %H: час в 24-часовом формате
  • %M: минуты
  • %S: секунды

Работа с путями в файловой системе

Для представления путей в файловой системе могут использоваться либо сырые строки (r""), либо двойные обратные слеши (\\), чтобы предотвратить проблемы с экранированием:

Python
Скопировать код
folder = r"C:\Users\YourName\Documents\Snapshots"
# ИЛИ
folder = "C:\\Users\\YourName\\Documents\\Snapshots"

Соединение директории и имени файла осуществляется с помощью os.path.join:

Python
Скопировать код
import os
from datetime import datetime

folder = r"C:\Users\YourName\Documents\Snapshots"
filename = datetime.now().strftime("snapshot_%Y-%m-%d_%H-%M-%S.png")
file_path = os.path.join(folder, filename)

Визуализация

Давайте представим процесс создания файла как кадры на пленке, каждый из которых становится ключевым моментом:

Python
Скопировать код
from datetime import datetime

snapshot = datetime.now().strftime("%Y-%m-%d_%H-%M-%S")
file_name = f"snapshot_{snapshot}.png"

Такой способ создания имен файлов грамотно отражает момент их создания:

Markdown
Скопировать код
Момент Съемки: 2023-04-01_10-30-45
Имя Файла: 📸 ➡️ "snapshot_2023-04-01_10-30-45.png"

Сохраните ключевые моменты в именах ваших файлов! 📁✨

Работаем с модулем time

Модуль time также полезен при работе со временем, особенно при ведении логов:

Python
Скопировать код
import time

filename = time.strftime("entry_%Y-%m-%d_%H-%M-%S.log")

Это позволяет отметить время важных событий в лог-файлах.

Проверяем наличие требуемой структуры директорий

Перед сохранением файла мы должны убедиться, что требуемая директория существует:

Python
Скопировать код
import os
from datetime import datetime

dir_path = r"~/snapshots"
if not os.path.exists(dir_path):
    os.makedirs(dir_path)  # Создаем "домик" для файлов, если его еще нет.

file_path = os.path.join(dir_path, datetime.now().strftime("snapshot_%Y-%m-%d_%H-%M-%S.png"))

Это избавит вас от ошибок при попытке записи в несуществующую папку.

Используем форматы, понятные людям

Для удобства пользователя можно использовать более понятный формат имени файла:

Python
Скопировать код
filename = datetime.now().strftime("report_%Y_%m_%d-%I_%M_%S_%p.txt")

Имя файла вроде "report_2023_04_01-10_30_45_AM.txt" будет более интуитивно понятно.

Полезные материалы

  1. datetime — Основные самовары даты и времени — Документация Python — Официальная документация Python по работе с датой и временем.
  2. Ввод и вывод — Документация Python — Гайд по чтению и записи файлов, включая работу с именами.
  3. Arrow: Повышенная работоспособность с датами и временем в Python — Документация библиотеки Arrow, которая улучшает работу с датами и временем.
  4. pathlib — Объекто-ориентированные пути файловой системы — Документация Python — Обзор современных методов работы с путями в Python.
  5. Python Tutorial: File Objects – Reading and Writing to Files — Видеоурок по чтению и записи файлов в Python.
  6. Документация Pendulum – Даты и времена в Python, сделанные простыми — Подробное руководство по работе с датами и временем с помощью библиотеки Pendulum.