如何创建具有当前日期的文件名使用Python的时间?

下面是一个功能代码(成功创建文件)

sys.stdout = open('filename1.xml', 'w')

现在我试图用当前日期/时间命名文件(我不是Python专家)

filename1 = datetime.now().strftime("%Y%m%d-%H%M%S")
sys.stdout = open(filename1 + '.xml', 'w')

我想写出一个文件名与确切的日期和时间,这是一个xml文件,该程序已经创建,我只需要命名文件。上面的代码不能工作。

错误返回:

  File "./fix.py", line 226, in <module>
filenames = datetime.now().strftime("%Y%m%d-%H%M%S")
AttributeError: 'module' object has no attribute 'now'
457957 次浏览

虽然没有使用datetime,但这解决了你的问题(回答了你的问题),即获得一个具有你指定的当前时间和日期格式的字符串:

import time
timestr = time.strftime("%Y%m%d-%H%M%S")
print timestr

收益率:

20120515-155045

所以你的文件名可以附加或使用这个字符串。

now是模块datetime中类datetime中的类方法。所以你需要

datetime.datetime.now()

或者您可以使用不同的导入

from datetime import datetime

这样做可以让你按照问题中的代码使用datetime.now

改变这一行

filename1 = datetime.now().strftime("%Y%m%d-%H%M%S")

filename1 = datetime.datetime.now().strftime("%Y%m%d-%H%M%S")

注意额外的datetime。或者,改变你的 import datetimefrom datetime import datetime

我很惊讶没有一些单一的格式返回默认(和安全)'用于附加在filename' -时间格式, 我们可以简单地写FD.write('mybackup'+time.strftime('%(formatter here)') + 'ext'

"%x" instead of "%Y%m%d-%H%M%S"

这个更适合人类阅读。

from datetime import datetime


datetime.now().strftime("%Y_%m_%d-%I_%M_%S_%p")
'2020_08_12-03_29_22_AM'

这里有一些,我需要包括日期-时间戳在文件夹名称转储文件从一个网页刮板。

# import time and OS modules to use to build file folder name
import datetime
import time
import os


# Build string for directory to hold files
# Output Configuration
#   drive_letter = Output device location (hard drive)
#   folder_name = directory (folder) to receive and store PDF files


drive_letter = r'D:\\'
folder_name = r'downloaded-files'
folder_time = datetime.now().strftime("%Y-%m-%d_%I-%M-%S_%p")
folder_to_save_files = drive_letter + folder_name + folder_time


# IF no such folder exists, create one automatically
if not os.path.exists(folder_to_save_files):
os.mkdir(folder_to_save_files)
import datetime


def print_time():
parser = datetime.datetime.now()
return parser.strftime("%d-%m-%Y %H:%M:%S")


print(print_time())


# Output>
# 03-02-2021 22:39:28

这打印在一个容易阅读的格式-

import datetime


time_now  = datetime.datetime.now().strftime('%m_%d_%Y_%H_%M_%S')


print(time_now)

输出:02_03_2021_22_44_50