如何在Windows中创build一个具有尾随句点的文件名?

如何处理在Python中以句号结尾的文件名? 根据MSDN的网站,这些文件名在Windows中是有效的,但是每当我尝试在Python中创build一个文件名时,它将删除最后一个时间段。 我甚至尝试用os.open创build一个原始文件描述符,但是它仍然删除了这个句点。

例如,这将创build一个简单名为“ test ”的文件

 os.open('test.', os.O_CREAT | os.O_WRONLY, 0777) 

编辑: 这是确切的报价

关于文件名和目录中的空格和点。 限制是在Windowsshell – 而不是在Windows或NT。 使用'bash',你可以在文件名的开始和结尾使用空格(或点)来创build文件。 然后,您可以在资源pipe理器中列出并打开这些文件,并且可以在shell(cmd.exe)中“列出”它们,但是您不一定能够从shell中打开它们(尤其是后面的空格和点)。

我想出了如何做到这一点。 显然,传递一个正常的文件名将会直接从C中调用Win API时去掉这个句点。为了创建奇怪的文件名,你必须使用\\?\前缀(这也会禁用相对路径和斜杠转换)。

 open('\\\\?\\C:\\whatever\\test.','w') 

这是丑陋的,不便携的,但它的工作。

\\?\语法也适用于cmd.exe

 dir>"\\?\C:\whatever\test." 

Windows将删除最后的尾随句点,假定它是文件名和空白扩展名之间的分隔符。 尝试使用两个时期。