246

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

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'
4

8 回答 8

498

在不使用datetime时,这可以解决您获取具有您指定的当前时间和日期格式的字符串的问题(回答您的问题):

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

产量:

20120515-155045

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

于 2012-05-15T19:48:07.850 回答
59

更改此行

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

于 2012-05-15T19:55:09.447 回答
39

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

datetime.datetime.now()

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

from datetime import datetime

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

于 2012-05-15T19:53:53.607 回答
36

这一个更具人类可读性。

from datetime import datetime

datetime.now().strftime("%Y_%m_%d-%I_%M_%S_%p")
'2020_08_12-03_29_22_AM'
于 2019-08-15T18:26:27.273 回答
6

我很惊讶没有一些单一的格式化程序返回默认(和安全)“用于附加文件名” - 当时的格式,我们可以简单地写FD.write('mybackup'+time.strftime('%(formatter here)') + 'ext'

"%x" instead of "%Y%m%d-%H%M%S"
于 2016-01-20T02:31:45.593 回答
3

这是我需要在文件夹名称中包含日期时间戳的一些内容,以便从网络抓取工具中转储文件。

# 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)
于 2019-12-26T03:48:30.293 回答
2

这以易于阅读的格式打印 -

import datetime

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

print(time_now)

输出:02_03_2021_22_44_50

于 2021-02-04T06:46:18.300 回答
1
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
于 2020-12-10T11:57:48.913 回答