Python 2.7,操作系统可移植的方式来确定用户输入路径的权限/内容

标签 python file-io io file-permissions file-handling

免责声明:我已经在(Google)和此处搜索了有关此主题的一些信息,但大多数答案要么非常旧,要么对我来说似乎不太有意义,所以如果出现这种情况,我提前表示歉意看起来很简单或无知。

问题:我的应用程序接受命令行输入,该输入可能是路径或文件,我需要确定有关它的几件事。

  1. 是路径还是文件,
  2. 是相对的还是绝对的
  3. 是否可读和/或可写(需要读写测试结果)(忽略竞争情况的可能性)

一个警告,同时

    try:
        file=open(filename,'w')
    except OSError as e:
        {miscellaneous error handling code here}

显然会告诉我参数(上例中的文件名)是否存在/可写等。我对异常代码了解不够,不知道如何解释异常的结果。它也不会提供相对/绝对信息。

假设没有一种方法可以做到这一点,那么我需要知道三件事:

  1. 如何确定相对/绝对
  2. 它是指向文件还是目录
  3. 程序的EUID可以读取位置,写入也一样。

我正在寻求从我在这里收集的信息中学习,我是Python新手,并且已经完成了一个重要的项目。除了这部分,我已经掌握了所有内容。任何帮助,将不胜感激。 (欢迎指向好的帮助网站!)(除了已经添加书签的 docs.python.org ;-) )

最佳答案

这是您的答案。 documentations指定以下内容适用于 Windows 和 Linux。

  1. 如何确定相对/绝对 os.path.isabs如果路径是绝对路径则返回 True,否则返回 False。

  2. 是指向文件还是目录 类似地使用os.path.isdir找出路径是否是目录。 您可以使用os.path.isfile(path)查明路径是否为文件。

  3. 程序的EUID可以读取该位置,写入也一样。 您可以使用os.access(path, mode)了解需要模式指定权限的操作是否可以在路径指定的文件上进行。 附:这不适用于通过网络访问的文件。您可以使用os.stat这是获取所有信息的正确方法。然而,这是一个成本更高的调用,因此,您应该尝试在一次调用中获取所有信息。要解释结果,您可以使用 stat模块

关于Python 2.7,操作系统可移植的方式来确定用户输入路径的权限/内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12341588/

相关文章:

android - 打开失败的 EACCES(权限被拒绝)

c++ - ifstream 没有返回正确的 int 值

python - 使用 Python 在 Mac 上获取开放应用程序

javascript - 如何检查我的 Bokeh 服务器应用程序是否已完全加载和呈现?

python - 从 AWS Lambda/tmp 目录导入 python 包

file-io - gnu 中的文件 I/O 并行

c# - .NET 4.0 - Directory.GetFiles 的结果是否始终保证按文件名排序?

string -++ 运算符与字符串和 IO 字符串

c - 如何防止 C read() 从缓存中读取

python - 在 Mac 上安装 basemap 时出错