如何在python中创建具有当前日期和时间的文件名?

dee*_*ell 141 python

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

sys.stdout = open('filename1.xml', 'w')
Run Code Online (Sandbox Code Playgroud)

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

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

我想写出一个具有确切日期和时间的文件名,它是一个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'
Run Code Online (Sandbox Code Playgroud)

Lev*_*von 306

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

import time
timestr = time.strftime("%Y%m%d-%H%M%S")
print timestr
Run Code Online (Sandbox Code Playgroud)

收益率:

20120515-155045
Run Code Online (Sandbox Code Playgroud)

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

  • 明白了!我的脚本中没有定义时间,我试图使用 timedate (不起作用,我不知道为什么),但随着时间的推移,现在很清楚,文件名已成功创建。太感谢了! (2认同)
  • 当有两个答案可以很好地解释问题中代码的错误时,我不知道你为什么接受这个答案.没有什么能反对Levon做到这一点,它运作正常,但是当你说"不工作,我不知道为什么"时,它似乎很奇怪,因为你有答案可以解释原因. (2认同)
  • @rwbyrd你可能在范围内的某个地方有一个名为"time"的int变量,它隐藏了`time`模块. (2认同)

Dav*_*nan 32

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

datetime.datetime.now()
Run Code Online (Sandbox Code Playgroud)

或者您可以使用其他导入

from datetime import datetime
Run Code Online (Sandbox Code Playgroud)

以这种方式完成允许您datetime.now根据问题中的代码使用.


And*_*ndy 28

改变这一行

filename1 = datetime.now().strftime("%Y%m%d-%H%M%S")
Run Code Online (Sandbox Code Playgroud)

filename1 = datetime.datetime.now().strftime("%Y%m%d-%H%M%S")
Run Code Online (Sandbox Code Playgroud)

请注意额外的datetime.或者,将您更改 import datetimefrom datetime import datetime

  • @ B4NZ41你现在在做什么并不重要.重要的是问题. (2认同)

Ric*_*PhD 8

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

# 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)
Run Code Online (Sandbox Code Playgroud)


Dev*_*wal 6

这个更容易被人类理解。

from datetime import datetime

datetime.now().strftime("%d-%m-%Y_%I-%M-%S_%p")
Run Code Online (Sandbox Code Playgroud)
'15-08-2019_11-57-48_PM'
Run Code Online (Sandbox Code Playgroud)

  • 是的,但按名称排序不会按时间顺序排序 (2认同)
  • 我想这只需要 YYMMDD 而不是 DDMMYY ? (2认同)

one*_*ijk 5

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

"%x" instead of "%Y%m%d-%H%M%S"
Run Code Online (Sandbox Code Playgroud)