在Python中,如何识别名称包含句点的目录?

问题描述:

在Windows下,假设你有以下目录:在Python中,如何识别名称包含句点的目录?

r:\glew-1.10.0 

什么Python的方法可以用来可靠地确定,这是一个目录?

os.path.isdir("r:\\glew-1.10.0") # returns false 
os.path.isfile("r:\\glew-1.10.0") # returns true 

mode = os.stat("r:\\glew-1.10.0").st_mode 
stat.S_ISDIR(mode)  # raises a WindowsError - the system cannot find the file 

它似乎很清楚,在目录名中的一段存在导致具有这些功能的问题,但我无法找到任何替代品。

+3

”看起来很清楚,目录名称中存在一段时间会导致这些功能出现问题“......也许这是因为我没有查看您的文件系统,但对我而言这并不明显... – mgilson 2014-09-23 19:48:09

+0

我不认为这是时期。也许是反斜杠。 – khelwood 2014-09-23 19:53:03

+4

您确定这实际上是一个目录,而不是NTFS 6式软链接或交接点,甚至是老式资源管理器快捷方式吗? (对前两个版本的支持已经添加到更新版本的Python中,但我不知道您使用的是哪个版本;快捷方式只是定期文件,所以Python永远不会为它们添加完全透明的支持,因为那样会错误。) – abarnert 2014-09-23 19:55:07

回答我自己的无能......

首先,具体:

isdir(path) 

只会返回False如果路径不存在(它不会引发错误)。

然后摘要:

如果堆栈Exchange或搜索谷歌没有透露谁比谁提到类似于您所遇到的一个什么问题,仔细检查你的代码。除非你在做一些模糊的事情,否则你自己犯错的可能性很大。 “