文件路径 - Windows 上的倒斜杠以及 macOS / Linux / UNIX 上的正斜杠
1. 正斜杠 (斜杠
/
) 和反斜杠 (倒斜杠
\
)
Windows - 正斜杠,左斜杠,斜杠符号是
/
。
macOS / Linux / UNIX - 反斜杠,右斜杠,倒斜杠符号是
\
。
Windows 使用反斜杠
\
的历史来自 DOS。因为 DOS 使用正斜杠
/
表示命令行参数,Windows 只能用反斜杠
\
表示路径了。
Window 单词的第一笔,即字母 W 的第一笔,就是反斜杠
\
。
Windows 文件浏览器使用反斜杠
\
作为路径分隔符。
/
撇是正斜杠,
\
捺是反斜杠。
2. 单反斜杠和双反斜杠
在编程语言中反斜杠
\
是转义前导字符,
\n
代表换行。当反斜杠
\
用在字符串中时,要用双反斜杠
\\
。
路径名在编程语言中是字符串类型的,在路径名中不能用
\
表示路径分割,单个
\
表示转义字符的含义,所以在字符串中要表示
\
必须用双斜杠
\\
。
../
或
..\
表示上一级路径。
./
或
.\
表示当前路径。
3. Windows
请注意,倒斜杠有两个,因为每个倒斜杠需要由另一个倒斜杠字符来转义。
Microsoft Windows [版本 6.1.7601]
版权所有 (c) 2009 Microsoft Corporation。保留所有权利。
C:\Users\foreverstrong>python
Python 3.6.0 (v3.6.0:41df79263a11, Dec 23 2016, 08:06:12) [MSC v.1900 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import os
>>> os.path.join("usr", "include", "c++")
'usr\\include\\c++'
>>>
>>> print(os.path.join("usr", "include", "c++"))
usr\include\c++
>>>
>>>
>>> files = ["a.txt", "b.txt", "c.txt"]
>>> for filename in files:
... print(os.path.join("C:\\Users\\Default", filename))
...
C:\Users\Default\a.txt
C:\Users\Default\b.txt
C:\Users\Default\c.txt
>>>
4. Linux
strong@foreverstrong:~$ python
Python 2.7.12 (default, Nov 19 2016, 06:48:10)
[GCC 5.4.0 20160609] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import os
>>> os.path.join("usr", "include", "c++")
'usr/include/c++'
>>>
>>> print(os.path.join("usr", "include", "c++"))
usr/include/c++
>>>
>>>
>>> files = ["a.txt", "b.txt", "c.txt"]
>>> for filename in files:
... print(os.path.join("/Users/Default", filename))
...
/Users/Default/a.txt
/Users/Default/b.txt
/Users/Default/c.txt
>>>
>>>
>>> files = ["a.txt", "b.txt", "c.txt"]
>>> for filename in files:
... print(os.path.join("/Users/Default/", filename))
...
/Users/Default/a.txt
/Users/Default/b.txt
/Users/Default/c.txt
>>>
>>>
>>> files = ["a.txt", "b.txt", "c.txt"]
>>> for filename in files:
... print(os.path.join("/Users/Default//", filename))
...
/Users/Default//a.txt
/Users/Default//b.txt
/Users/Default//c.txt
>>>
>>>
>>> files = ["a.txt", "b.txt", "c.txt"]
>>> for filename in files:
... print(os.path.join("/Users/Default///", filename))
...
/Users/Default///a.txt
/Users/Default///b.txt
/Users/Default///c.txt
>>>