绝对路径VS相对路径


什么是路径

路径在计算机中一般指一个文件或者目录的位置。
绝对路径的起点大抵分为两类,一类是Windows所使用的基于盘符,以X:\为起点,逻辑上的盘符对应物理的磁盘,更符合普通人的思维方式。另一类是以LinuxUNIX为代表(包括MacOS)的基于根目录,以/为起点,根目录是一个虚拟的位置,它挂载(mount)于磁盘中的某个位置,由于较为复杂,本文不赘述相关概念了。
然后以/\(或:, .等)分隔每段文本,以表示后者隶属于前者。
此外,一般地,.表示当前目录,..表示上级目录。
各个系统的路径规则不尽相同,这里附上wikipedia的链接: https://en.wikipedia.org/wiki/Path_(computing)
这样解释相比你看不懂,让我们换个形象的方法。

做个类比

小明住在C城幸福小区6楼8门808,要去找小兰玩耍。

  1. 假设小兰住在C城幸福小区6楼8门302,那么小明需要先出屋门,然后去302
  2. 假设小兰住在C城幸福小区6楼2门708,那么小明需要出屋门再出单元门,再去2门408
  3. 假设小兰在C城幸福小区门口等小明,那么小明需要出屋门再出单元门离开楼
  4. 假设小兰就在C城幸福小区6楼8门808里,那么小明需直接去找小兰即可。
  5. 假设小兰在C城幸福小区6楼8门808的卧室,那么小明需直接去卧室即可。
  6. 假设小兰在C城幸福小区6楼8门808的卧室的床上,那么小明需直接去卧室的床上即可。
    以上一定不难理解,前者是小兰的绝对位置,后者是小兰对于小明的相对位置

现在让我们稍作变化:
一个叫做小明.exe的文件,位于C:\幸福\8\8\808\小明.exe,需要读取小兰.data中的数据。

  1. 假设数据位于C:\幸福\6\8\302\小兰.data,那么,..\302\小兰.data
  2. 假设数据位于C:\幸福\6\2\708\小兰.data,那么,..\..\2\408\小兰.data
  3. 假设数据位于C:\幸福\小兰.data,那么,..\..\..\小兰.data
  4. 假设数据位于C:\幸福\6\8\808\小兰.data,那么,小兰.data
  5. 假设数据位于C:\幸福\6\8\808\卧室\小兰.data,那么,卧室\小兰.data
  6. 假设数据位于C:\幸福\6\8\808\卧室\床\小兰.data,那么,卧室\床\小兰.data
    前者便是绝对路径,后者便是相对路径。

    哪个更好

    显然,相对路径绝对路径都可以表示某一文件的位置,但二者各有所长。如果小兰始终位于某个固定位置,无疑用绝对路径更好表达,但如果小兰和小明是一家人,即便经常搬家,使用相对路径,他们也可以相互找到。所以,我们在电脑上安装的程序,他们的位置是不会改变的,所以快捷方式都使用绝对路径来表达;而在我们建立项目的时候,使用相对路径是更好的,这样也可以避免污染环境,将自身生成的文件控制在项目自己的文件夹内。
    如果你还有不明白的地方,欢迎留言讨论!

文章作者: BoyInTheSun
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 BoyInTheSun !
 上一篇
github下载错误在|0.0.0.0|:443或|::|:443 github下载错误在|0.0.0.0|:443或|::|:443
Resolving raw.githubusercontent.com (raw.githubusercontent.com)... 0.0.0.0, :: Connecting to raw.githubusercontent.com (raw.githubusercontent.com)|0.0.0.0|:443... failed: Connection refused. Connecting to raw.githubusercontent.com (raw.githubusercontent.com)|::|:443... failed: Connection refused.
2020-07-01 BoyInTheSun
下一篇 
matplotlib实例————北京市链家二手房源深度分析 matplotlib实例————北京市链家二手房源深度分析
基于`matplotlib(v3.2.1)`,通过爬取的链家北京二手房数据,深度分析当前北京二手房数据,为购房人士提供指导
2020-05-18
  目录