【发布时间】:2011-03-24 05:25:45
【问题描述】:
def CreateDirectory(pathName):
if not os.access(pathName, os.F_OK):
os.makedirs(pathName)
对比:
def CreateDirectory(pathName):
if not os.path.exists(pathName):
os.makedirs(pathName)
我知道 os.access 更灵活一些,因为您可以检查 RWE 属性以及路径是否存在,但是这两种实现之间是否存在一些细微差别?
【问题讨论】:
-
如果要相信文档,它甚至比答案所说的更微妙。
os.F_OK模式专门用于测试存在性,而不是权限;而对于os.path.exists():“在某些平台上,如果未授予对请求的文件执行 os.stat() 的权限,即使路径物理存在,此函数也可能返回 False。” FreeBSD man pages 说access比stat便宜用于测试存在性。
标签: python operating-system module