我在尝试使用python中的open()创建文件时收到IOError,这似乎只发生在单个文件名中。目录肯定存在并授予权限,循环成功创建了大约1000个文件。当我在下面的代码中epic = "CON"
收到“没有这样的文件或目录”错误,但它适用于其他值。
f = open('data\\LSE\\%s.csv' % epic.strip(),'w')
f.write(u.read())
f.close()
这可能是种族问题吗?文件创建速度非常快。
我是python的新手,所以如果我错过了一些明显的东西,请道歉!
答案 0 :(得分:1)
问题是你在Windows上运行这个代码,它仍然包含一些来自MS-DOS 1.0的遗产。 CON
是控制台设备的特殊名称。您不能将其用作文件名。最早版本的MS-DOS不支持目录,也不支持8.3文件命名模式的所谓“扩展”。因此,无论目录如何,名称都是特殊的,无论扩展名如何。
一些参考文献:
<小时/> http://msdn.microsoft.com/en-us/library/windows/desktop/aa365247%28v=vs.85%29.aspx
请勿对文件名使用以下保留名称:
CON,PRN,AUX,NUL,COM1,COM2,COM3,COM4,COM5,COM6,COM7,COM8,COM9,LPT1,LPT2,LPT3,LPT4,LPT5,LPT6,LPT7,LPT8和LPT9。同时避免使用这些名称后立即进行扩展;例如,不建议使用NUL.txt。