【发布时间】:2016-08-06 20:10:31
【问题描述】:
我想创建一个文件名如下格式的 csv 文件:
"日-月-年小时:分钟-malware_scan.csv"
示例:“6-8-2016 21:45-malware_scan.csv”
文件名的第一部分由文件创建时的实际日期和时间组成,而“-malware_scan.csv”是一个固定字符串。
我知道为了获取日期和时间,我应该使用 time 或 datetime 模块和 strftime() 函数进行格式化。
起初我尝试过:
t = datetime.datetime.now()
formatted_time = t.strftime(%d-%m-%y %H:%M)
filename = formatted_time + "-malware_scan.csv"
with open(filename, "a") as f:
...............
我没有得到预期的结果,所以我尝试了另一种方法:
i = datetime.datetime.now()
file_to_open = "{day}-{month}-{year} {hour}:{minute}-malware_scan.csv".format(day = i.day, month = i.month, year = i.year, hour = i.hour, minute = i.minute)
with open(file_to_open, "a") as f:
.......................
同样使用上面的代码我没有得到预期的结果。 我得到这样的文件名:“6-8-2016 21”。显示日、月、年和小时,但不显示分钟和字符串的其余部分 (-malware_scan.csv)。
我只关注这个问题的文件名,而不是csv写作本身,其代码被省略。
【问题讨论】:
-
第一次尝试的结果如何?因为当我尝试它时它的格式很好。
%d-%m-%y %H:%M应该是一个字符串(带“)顺便说一句。 -
意味着
:不允许出现在文件名中,至少在 Windows 上是这样 -
我正在 Windows 上尝试。所以也许我应该避免 : 作为分隔符。
-
我建议使用下划线 (_) 而不是
:和任何空格。这样,它可以在大多数操作系统上运行,如果不是全部的话。
标签: python string datetime formatting filenames