如何处理在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将删除最后的尾随句点,假定它是文件名和空白扩展名之间的分隔符。 尝试使用两个时期。