当前位置: 首页 > 面试题库 >

在Python中测试目录权限?

柳杰
2023-03-14
问题内容

在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

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


问题答案:

在Windows中检查权限可能很复杂。

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

同样,为了正确地解释路径,您必须使用原始字符串或转义反斜杠(’\'),或使用正斜杠。

(编辑:您可以通过使用os.path.join-推荐的构建路径的方式完全避免斜杠)



 类似资料:
  • 问题内容: 我想在Go中创建一个带有测试和示例的包作为子目录,以保持工作区的整洁。这有可能吗? 所有文档总是将测试代码与其他代码放在同一位置,这在某种程度上还是惯例上更好? 问题答案: 请注意,您 可以 “递归” 运行:您需要 列出要测试的所有软件包 。 如果您位于Go项目的根文件夹中,请键入: “ ”符号在“ 命令 ” 的“ 软件包列表说明 ” 部分中进行了描述: 如果导入路径包含一个或多个通配

  • 我是一个使用V13的情报人员。 我有一个简单的java项目(默认)结构,如下所示: 现在,我想编写一个简单的测试,并将代码放在/src/test/java目录中。所以我决定更改我的项目格式,使其看起来像: 创建该结构后,我显然希望将src中的当前类移到main/java/com...结构。 如果我在根目录中创建了一个新目录,我可以选择将目录标记为测试源根目录,但它仍然挂在根目录上,如下所示: 有人

  • 当我录制一个浓缩咖啡测试并重播时,我收到这个错误,我该如何解决它?: junit.framework.AssertionFailedError:无法授予权限,请参阅logcat(位于Android.support.test.runner.permission.requester.requestPermission(permissionrequester.java:50)(位于Android.sup

  • 问题内容: 我是使用v13的Intellij新手。 我有一个简单的java项目(默认)结构,如下所示: 现在,我想编写一个简单的测试,并将该代码放在/ src / test / java目录中。因此,我决定更改项目格式,使其看起来像: 创建该结构后,我显然想将src中的当前类移至main / java / com …结构。 我已经阅读了所有有关内容根源和项目结构的内容。该信息甚至指出:“可以将内容