File = open()使用文件名中的日期错误输出,Python

时间:2012-03-28 20:04:51

标签: python datetime file-io

我正在尝试在python中打开一个文本文件。在以下代码中:

import datime
from datetime import datetime

today = datetime.now()
sitename = "Soil Report"
rptFolder = r"C:\Template_Outputs\Production Reports"

file = open(rptFolder + "\\" + sitename + "_" + today.strftime("%y%b%d_%H:%M:%S") + ".txt", "w")

我一直收到以下错误:

  

[Errno 22]无效模式('w')或文件名:

我已经缩小了文件名中日期的设置范围。它似乎不喜欢(即我只是用“test”替换了today.strftime(“%y%b%d_%H:%M:%S”)并且它有效)

我还尝试将日期设置为字符串,以便将其放入文件名中,如:

str(today.strftime("%y%b%d_%H:%M:%S"))

也没有运气。

我需要文件名中的时间戳,因为较大的脚本在短时间内可能会很有趣。

这里有什么我想念的吗?

3 个答案:

答案 0 :(得分:2)

如果您正在使用Windows,则Windows不允许使用冒号(:)的文件。尝试从这里删除你的结肠:

str(today.strftime("%y%b%d_%H:%M:%S"))

看看会发生什么

答案 1 :(得分:1)

文件名中通常不允许使用冒号。用下划线替换。 此外,您可能希望在每秒运行多个文件的情况下包含毫秒,纳秒或随机数。

答案 2 :(得分:1)

Windows上的文件名不能包含冒号(:)。