【问题标题】:When to use Absolute Path vs Relative Path in Python何时在 Python 中使用绝对路径与相对路径
【发布时间】:2017-11-30 00:27:24
【问题描述】:

供参考。绝对路径是计算机上某个位置的完整路径。相对路径是相对于您当前工作目录 (PWD) 的某个文件的路径。例如:

绝对路径: C:/users/admin/docs/stuff.txt

如果我的密码是C:/users/admin/,那么stuff.txt 的相对路径将是:docs/stuff.txt

注意,密码+相对路径=绝对路径。

酷,太棒了。现在,我编写了一些脚本来检查文件是否存在。

os.chdir("C:/users/admin/docs") os.path.exists("stuff.txt")

如果stuff.txt 存在并且它工作,则返回TRUE

现在,如果我写,

os.path.exists("C:/users/admin/docs/stuff.txt")

这也返回TRUE

是否有明确的时间我们需要使用其中一个?是否有关于 python 如何查找路径的方法?它会先尝试一个然后再尝试另一个吗?

谢谢!

【问题讨论】:

  • 显然你只能对 os.path.getsize() 使用绝对路径,所以我更加困惑。
  • 我不记得在使用绝对路径时遇到过问题......虽然我想知道它是如何在内部处理的

标签: python path relative-path absolute-path pwd


【解决方案1】:

如果您不知道用户将从何处执行脚本,最好使用os__file__ 计算用户系统上的绝对路径。

__file__ 是在每个 Python 脚本上设置的全局变量,它返回包含它的 *.py 文件的相对路径。

import os
my_absolute_dirpath = os.path.abspath(os.path.dirname(__file__))

【讨论】:

    【解决方案2】:

    最大的考虑可能是便携性。如果您将代码移动到另一台计算机并且需要访问其他文件,那么其他文件将在哪里?如果它与您的程序位于同一位置,请使用相对地址。如果它在同一个绝对位置,请使用绝对地址。

    【讨论】:

    • 同意.. 一般来说,我讨厌我使用的程序坚持使用特定文件夹。想象一下,如果 python 本身坚持将您的代码放在某个您无法更改的确切文件夹中。不过,有时它比其他人更重要。
    猜你喜欢
    • 2012-01-11
    • 2018-06-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多