10

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

例如,这将创建一个简单命名为 ' test'的文件

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

编辑:这是确切的报价

关于文件名和目录中的空格和点。限制在 windows shell 中——不在 Windows 或 NT 中。使用“bash”,您可以在文件名的开头和结尾创建带有空格(或点)的文件。然后,您可以在资源管理器中列出并打开这些文件,并且可以在 shell (cmd.exe) 中“列出”它们,但不一定能够从 shell 中打开它们(尤其是尾随空格和点)。

4

3 回答 3

7

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

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

它丑陋且不可移植,但它可以工作。

于 2013-04-24T22:54:18.717 回答
7

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

dir>"\\?\C:\whatever\test."
于 2013-06-13T22:15:10.327 回答
-1

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

于 2012-07-27T04:23:14.527 回答