@Let us 聊一聊反斜杠"“和正斜杠”/"
大话反斜杠"\“和正斜杠”/"
因为最近在学习python,有时候需要在Windows和Linux两种环境下来回跑程序,尤其涉及到文件夹路径、转译符等问题时,最让人烦恼的就是搞混淆"\“和”/"这两个小妖精,所以干脆对它们做了一个系统的整理。
Windows
传统的DOS路径
传统的DOS路径即为应用于文件win文件夹浏览器或者DOS环境下的路径写法,其格式主要又以下三部分组成:
- 卷号或者在驱动器号,后紧跟卷分割符:F:\US_Segmentation\test\readme.txt;
- 目录名称:F:\US_Segmentation\test\readme.txt;
- 文件名:F:\US_Segmentation\test\readme.txt;
但是这三项并不一定全部存在,不同的组合形式适用于不同的情况,以路径”F:s1\s2\s3\s4\s5\file.txt“下表列出了一些具体情况。
路径 | 说明 |
---|---|
F:\s1\s2\s3\s4\s5\file.txt | F盘下绝对路径 |
s1\s2\s3\s4\s5\file.txt | 当前驱动器根路径下的绝对路径 |
..\s3\s4\s5\file.txt | 指向当前目录的同级目录中的文件的相对路径。 |
F:s5\file.txt=F:s3\s4\s5\file.txt | F盘目录下指向某一文件的相对路径。 |
UNC路径
通用命名约定路径,用于访问网络资源,同上用在局域网上定位文件或者文件夹,格式如下:
- 以 \ 开头的服务器名或主机名。可以为NetBIOS计算机名或者IP地址;
- 享名,使用 \ 将其与主机名分隔开。 服务器名和共享名共同组成了卷;
- 目录名称;
- 文件名;
同样,举栗说明。
路径 | 说明 |
---|---|
\system07\C$\ | system07 上C:盘的根目录 |
\Server1\Share\Test\Foo.txt | \Server2\Share卷的目录test中的Foo.txt文件。 |
此外由于编译器的字符串解析中还涉及到转义字符的问题,所以为了避免麻烦,Windows下的路径经常会用"\"来表示,在命令行模式下或者程序代码中经常可以看到使用"\\"来作为文件分割符使用,因此写成"F:\s1\s2\s3\s4\s5\file.txt"是完全ok的。
Linux
- 和windows系统不同,Unix/Linux中文件路径的表示方法是不一样的,最大的差别就是Unix/Linux中路径的分割采用正斜杠"/",如"/home/s1/s2"。
- 因为web应用最先在Unix上使用,所以目前不论在**Windows/Linux/Unix上网络地址都采用"//"**作为分隔符。
- Linux中相对路径的表:
路径 | 说明 |
---|---|
./ | 表示用户所处的当前目录 |
../ | 表示上级目录 |
_ | 表示前一个工作目录 |
~ | 表示当前用户的根目录目录 |
总结
- Windows中文件浏览器用反斜杠 “\”,Linux\Unix 使用正斜杠 “/”;
- Windows/Linux/Unix 的浏览器地址均使用"/";
- 因为"\“在编程语言中表转义,所以在windows环境的程序中经常使用”\"作为地址分隔符;
- 后续还会补充