【问题标题】:os.path.isdir() not recognising hidden directories [duplicate]os.path.isdir()不识别隐藏目录[重复]
【发布时间】:2016-08-30 23:44:15
【问题描述】:

所以我注意到在我的根目录的子目录上运行 os.path.isdir() 时,它会为任何隐藏/受保护的文件夹返回 False。有什么原因吗,还是已知的错误?如果没有,有什么办法可以解决这个问题?

作为参考,下面是我正在运行的代码:

import os
for path in os.listdir("/"):
    print path, os.path.isdir(path)

编辑:这是上面代码的输出

.DocumentRevisions-V100 False
.file False
.fseventsd False
.Spotlight-V100 False
.Trashes False
.vol False
Applications True
bin False
cores False
dev False
Developer False
etc False
home False
installer.failurerequests False
Library True
net False
Network False
opt False
private False
sbin False
System False
tmp False
User Information False
Users False
usr False
var False
Volumes False

【问题讨论】:

  • 它是否适用于非隐藏目录?你能发布一些示例输出吗?
  • 所以我把输出放在上面,如果我使用os.path.isdir(os.path.realpath(path)),输出是相同的,它应该删除任何符号目录,正如你所看到的,它确实适用于一些非隐藏目录,例如 libraryapplications,但是,也有一些非隐藏文件夹返回 false (包括例如,users

标签: python macos python-2.7


【解决方案1】:

尝试将目录名称添加到path 的前面。

import os
for path in os.listdir("/"):
    print path, os.path.isdir("/" + path)

【讨论】:

  • 修复了,谢谢!
  • 对不起,奇怪的是,使用os.isdir("/"+os.path.realpath(path))时不起作用
  • 所以看起来os.path.realpathos.path.abspath 不起作用的原因是他们错误地将/users/<username>/ 添加到每个目录
猜你喜欢
  • 2011-04-15
  • 2019-01-13
  • 2018-05-31
  • 2016-12-21
  • 1970-01-01
  • 1970-01-01
  • 2016-08-08
  • 2015-07-21
  • 1970-01-01
相关资源
最近更新 更多