OSError:[Errno 22]尝试创建文件时参数无效

时间:2019-06-12 22:21:04

标签: python

我正在尝试创建一个日志系统,该程序将程序遇到的所有异常写入新文件。为此,我在字符串创建中使用了asctime()函数。但是,当我运行时,出现以下错误:

OSError:[Errno 22]无效的参数:'C:\ Users \ User \ Desktop \ VendSend Log Wed Jun 12 12 12:16:56 2019.txt'

这是我的代码:

reporter_name='C:\\Users\\User\\Desktop\\VendSend Log '+time.asctime()+'.txt'

fh = open(reporter_name,'w')

fh.write('-----VENDORS WITH NO EMAILS-----')
f_len = len(vendor_removed)
fcount = 0
while fcount < f_len:
    fh.write(vendor_removed[fcount])
    fh.write()
    fcount += 1

3 个答案:

答案 0 :(得分:0)

time.asctime返回此格式'Sun Jun 20 23:21:05 1993'。当您在Windows上并且不接受/:*?“ <>或|时,您指定的文件名不合法。

尝试使用time.strftime,它将以您想要的任何方式格式化日期/时间。

答案 1 :(得分:0)

文件名中的时间戳包含无效字符。使用以下命令创建可以附加到文件名的时间戳:

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

此文件的输出可用于创建文件名。

答案 2 :(得分:0)

输出包含Windows上文件路径的无效字符。

尝试使用strftime方法来获取仅包含可接受路径字符的格式。

import time

basename = "C:\\Users\\User\\Desktop\\VendSend Log "
logname = "%s %s.txt" % (basename, time.strftime("%a %b %d %H %M %S %Y", time.localtime()))

我也鼓励您不要在路径中使用空格(包括文件名)。