尝试使用open(filename,'x')打开文件时文件存在错误-Windows区分大小写问题

时间:2019-02-26 09:51:14

标签: python naming

我在Windows上,目录中不存在任何文件。

我很难弄清楚为什么:

fid = open('L01A.txt', 'x')
fid.write('A') 
fid.close()

fid = open('L01a.txt', 'x')
fid.write('a')
fid.close()

给我:

  

[Errno 17]文件存在:“ L01a.txt”。

1 个答案:

答案 0 :(得分:4)

您使用模式“ x”打开文件,该模式仅用于创建文件。从文档

  

'x',打开以进行独占创建,如果文件已存在则失败

您应该使用另一种模式,这是指向不同模式的描述的有用链接,

python open built-in function: difference between modes a, a+, w, w+, and r+?

编辑:显然,您的错误是您无法创建两个名称分别为L01AL01a的2个文件,并且文件大小写不同,这是Windows文件系统不区分大小写的原因。您不能创建两个不同的文件。

如果您绝对需要区分大小写,可以通过启动admin powershell并执行fsutil.exe file setCaseSensitiveInfo C:\folder enable

在目录中启用NTFS。

根据该线程,您可能想为所有子目录启用此功能,这是一种Apply setCaseSensitiveInfo recursively to all folders and subfolders的启用方法。

感谢Lalush的帮助。