Создание файла с именем текущего времени и даты в Python
Быстрый ответ
Чтобы сгенерировать имя файла с текущей датой и временем в Python, примените модуль datetime
и его метод strftime
. Вот пример такого имени файла:
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
.
[AsideBanner]
Использование strftime для форматирования даты и времени
Метод strftime
позволяет настроить формат времени, соответствующий вашим требованиям:
%Y
: год в формате четырех цифр%m
: номер месяца%d
: дата месяца%H
: час в 24-часовом формате%M
: минуты%S
: секунды
Работа с путями в файловой системе
Для представления путей в файловой системе могут использоваться либо сырые строки (r""
), либо двойные обратные слеши (\\
), чтобы предотвратить проблемы с экранированием:
folder = r"C:\Users\YourName\Documents\Snapshots"
# ИЛИ
folder = "C:\\Users\\YourName\\Documents\\Snapshots"
Соединение директории и имени файла осуществляется с помощью os.path.join
:
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)
Визуализация
Давайте представим процесс создания файла как кадры на пленке, каждый из которых становится ключевым моментом:
from datetime import datetime
snapshot = datetime.now().strftime("%Y-%m-%d_%H-%M-%S")
file_name = f"snapshot_{snapshot}.png"
Такой способ создания имен файлов грамотно отражает момент их создания:
Момент Съемки: 2023-04-01_10-30-45
Имя Файла: 📸 ➡️ "snapshot_2023-04-01_10-30-45.png"
Сохраните ключевые моменты в именах ваших файлов! 📁✨
Работаем с модулем time
Модуль time
также полезен при работе со временем, особенно при ведении логов:
import time
filename = time.strftime("entry_%Y-%m-%d_%H-%M-%S.log")
Это позволяет отметить время важных событий в лог-файлах.
Проверяем наличие требуемой структуры директорий
Перед сохранением файла мы должны убедиться, что требуемая директория существует:
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"))
Это избавит вас от ошибок при попытке записи в несуществующую папку.
Используем форматы, понятные людям
Для удобства пользователя можно использовать более понятный формат имени файла:
filename = datetime.now().strftime("report_%Y_%m_%d-%I_%M_%S_%p.txt")
Имя файла вроде "report_2023_04_01-10_30_45_AM.txt"
будет более интуитивно понятно.
Полезные материалы
- datetime — Основные самовары даты и времени — Документация Python — Официальная документация Python по работе с датой и временем.
- Ввод и вывод — Документация Python — Гайд по чтению и записи файлов, включая работу с именами.
- Arrow: Повышенная работоспособность с датами и временем в Python — Документация библиотеки Arrow, которая улучшает работу с датами и временем.
- pathlib — Объекто-ориентированные пути файловой системы — Документация Python — Обзор современных методов работы с путями в Python.
- Python Tutorial: File Objects – Reading and Writing to Files — Видеоурок по чтению и записи файлов в Python.
- Документация Pendulum – Даты и времена в Python, сделанные простыми — Подробное руководство по работе с датами и временем с помощью библиотеки Pendulum.