python:os.path.isdir对于带有dot on end的目录返回false

时间:2011-03-26 11:19:48

标签: python

Windows 7,python 2.6.6,2.7

创建目录'c:\ 1 \ test。'

尝试检查它是dir还是文件,但它不是:

>>> os.listdir('c:/1')
['test.']
>>> os.path.isdir('c:/1')
True
>>> os.path.exists('c:/1/test.')
False
>>> os.path.isdir('c:/1/test.')
False
>>> os.path.isfile('c:/1/test.')
False

为什么用目录。在结束时根本不被认为是文件系统入口?但是我可以从os.listdir获得它。

1 个答案:

答案 0 :(得分:5)

正如在评论中所说,在Windows上,以点结尾的文件名,以空格开头/结尾,是“aux”等等。 - 无法从资源管理器或大多数编程语言正常访问

如果您确实想要访问诸如“test”之类的目录。从python(或其他)代码中,您可以在路径前加\\?\,例如:

>>> os.path.isdir(r"\\?\c:\1\test.")
True

请注意“..”和“。”使用\\?\路径时,它将无法正常工作 - Windows将尝试访问具有该名称的实际文件或目录。