当前位置:  开发笔记 > 编程语言 > 正文

Python - 测试目录权限

如何解决《Python-测试目录权限》经验,为你挑选了2个好方法。

在Windows上的Python中,有没有办法确定用户是否有权访问目录?我已经看过了,os.access但它给出了错误的结果.

>>> os.access('C:\haveaccess', os.R_OK)
False
>>> os.access(r'C:\haveaccess', os.R_OK)
True
>>> os.access('C:\donthaveaccess', os.R_OK)
False
>>> os.access(r'C:\donthaveaccess', os.R_OK)
True

难道我做错了什么?有没有更好的方法来检查用户是否有权访问目录?



1> dF...:

检查Windows中的权限可能很复杂(例如,请注意Vista中使用UAC的问题! - 请参阅此相关问题).

您是在谈论简单的读取访问,即读取目录的内容?测试权限的最可靠方法是尝试访问目录(例如,执行操作os.listdir)并捕获异常.

此外,为了正确解释路径,您必须使用原始字符串或转义反斜杠('\\'), - 或使用正斜杠代替.

(编辑:你可以通过使用os.path.join- 建议路径的建议方法完全避免斜线)



2> Theran..:

虽然os.access尽力告诉路径是否可访问,但它并不是完美的.从Python文档:

注意:即使access()表明它们会成功,I/O操作也可能失败,特别是对于可能具有超出通常POSIX权限位模型的权限语义的网络文件系统上的操作.

建议的方法来确定用户是否有权执行任何操作,并捕获发生的任何异常.

推荐阅读
手机用户2502851955
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有