如何在 Python 中生成带日期和时间的文件名

从 Python 脚本存储实时数据时,在文件名中包含由日期和时间组成的时间戳通常很有帮助,例如

generate_datetime_filename_example.txt
mydata-2022-09-02_00-31-50-613015.csv

使用此特定语法,我们避免特殊字符(这在 Windows 操作系统上是个问题),并提供可词法排序的文件名

在 Python 中,你可以使用 UliEngineering 库中的 UliEngineering.Utils.generate_datetime_filename() 来做到这一点。

首先,安装 UliEngineering

现在你可以使用以下命令生成文件名

example_use_generate_datetime_filename.py
from UliEngineering.Utils.Date import *

filename = generate_datetime_filename()
# example: filename == 'data-2022-09-02_03-02-00-045587.csv'

或者你可以使用 with open() 直接打开文件:

open_generate_datetime_filename_write.py
with open(generate_datetime_filename(), "w") as outfile:
    # 你可以用 outfile 做什么的示例
    outfile.write("test")

不使用 UliEngineering

你可以使用此简化版本,它不支持小数秒,将生成类似这样的文件名

generate_datetime_filename_simple_example.txt
data-2022-09-02_00-31-50.csv

源代码(简单版本 - UliEngineering 版本更健壮并支持更多功能):

generate_datetime_filename_simple.py
from datetime import datetime

def generate_datetime_filename(label="data", extension="csv", dt=None):
    if dt is None:
        dt = datetime.now()
    return f"{label}-{dt.year}-{dt.month:02d}-{dt.day:02d}_{dt.hour:02d}-{dt.minute:02d}-{dt.second:02d}.{extension}"

Check out similar posts by category: Python