代码之家  ›  专栏  ›  技术社区  ›  prosseek

检查是否可以用Python将文件写入目录

  •  8
  • prosseek  · 技术社区  · 14 年前

    有没有办法提前检查?我可能在用try。。为了达到这个目的,我希望有更好的东西,在这个意义上,我可以提前检查。

    3 回复  |  直到 14 年前
        1
  •  15
  •   user79758 user79758    14 年前

    尽管jimbrissom声称异常处理是 与“检查然后尝试”习惯用法相比,Python的成本很低,如果您希望某件事情失败的次数超过百分之几。(请通读到底以了解例外情况!)但是,这里的关键是,您仍然需要检查异常,因为权限可以在检查和写入之间更改:

    ### !!! This is an example of what not to do!
    ### !!! Don't do this!
    if os.access("test", os.W_OK):
        # And in here, some jerk does chmod 000 test
        open("test", "w").write(my_data)
        # Exception happens despite os.access!
    

    专业

        2
  •  3
  •   Muhammad Alkarouri    14 年前

    你可能找不到更好或更具蟒蛇性的东西。Python的哲学是 it is easier to ask forgiveness than permission .

    os.access os.path.isfile 检查是否有文件而不是目录。会的 可能

        3
  •  1
  •   leoluk    14 年前

    pythonic方法是访问它并在异常失败时捕获它。

    如果你真的要检查它,使用 os.access ,但结果并不总是正确的,例如,请注意带有UAC的Vista/Win7中的问题!

    os.access(r'C:\Programme', os.R_OK)
    

    这将告诉您是否有读取权限。