首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >os.path.exists - os.access和Python之间的区别?

os.path.exists - os.access和Python之间的区别?
EN

Stack Overflow用户
提问于 2010-08-02 21:31:58
回答 2查看 3.9K关注 0票数 17
代码语言:javascript
复制
def CreateDirectory(pathName):
    if not os.access(pathName, os.F_OK):
        os.makedirs(pathName)

对比:

代码语言:javascript
复制
def CreateDirectory(pathName):
    if not os.path.exists(pathName):
        os.makedirs(pathName)

我知道os.access更灵活一些,因为你可以检查RWE属性和路径是否存在,但是这两种实现之间有什么细微的区别吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-08-02 21:38:46

最好只是捕捉异常,而不是试图阻止它。makedirs可能失败的原因有很多

代码语言:javascript
复制
def CreateDirectory(pathName):
    try:
        os.makedirs(pathName)
    except OSError, e:
        # could be that the directory already exists
        # could be permission error
        # could be file system is full
        # look at e.errno to determine what went wrong

为了回答您的问题,os.access可以测试读取或写入文件的权限(以登录用户的身份)。os.path.exists只是简单地告诉你那里有没有什么东西。我希望大多数人都会使用os.path.exists来测试文件是否存在,因为它更容易记忆。

票数 13
EN

Stack Overflow用户

发布于 2010-08-02 21:41:00

os.access会测试当前用户是否可以访问该路径,os.path.exists会检查该路径是否存在。即使路径存在,os.access也可能返回False

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3388223

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档