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

时间:2010-08-02 13:31:58

标签: python operating-system module

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属性以及路径存在,但是这两个实现之间是否存在一些细微差别?

2 个答案:

答案 0 :(得分:13)

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

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来测试文件的存在,因为它更容易记住。

答案 1 :(得分:4)

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