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

时间:2012-07-27 03:51:51

标签: python c windows filenames

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

例如,这将创建一个名为“test

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

修改:Here is the exact quote

  

关于文件名和目录中的空格和点。限制是   在Windows shell中 - 不在Windows或NT中。使用'bash',你可以   在开头和结尾创建包含空格(或点)的文件   文件名。然后,您可以在资源管理器中列出并打开这些文件   你可以在shell(cmd.exe)中“列出”它们,但不一定如此   能够从外壳打开它们(特别是尾随空格和   点)。

3 个答案:

答案 0 :(得分:6)

我想出了如何做到这一点。显然,即使直接从C调用Win API,传递普通文件名也会删除句点。为了创建奇怪的文件名,您必须使用\\?\前缀(这也会禁用相对路径和斜杠转换)。

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

它很丑陋且不便携,但它有效。

答案 1 :(得分:4)

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

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

答案 2 :(得分:0)

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