Python--os.access和os.path.之间存在差异吗?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (162)
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属性以及路径存在,但是在这两个实现之间我缺少一些细微差别吗?

提问于
用户回答回答于

更好地抓住例外而不是试图阻止它。有很多原因可能会导致失败

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

用户回答回答于

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

扫码关注云+社区

领取腾讯云代金券