技术库 > Python

python斜杠与反斜杠的用法区别

技术库:tec.5lulu.com

from:tec.5lulu.com

每次在编写路径的时候,总是被路径中的斜杠和反斜杠所迷惑,今天特地查了一下,总结各方面的情况,介绍如下:

1 斜杠和反斜杠的通常用法

正斜杠 “ / ” (英文名:lash)表示除法,分隔。在windows系统中通常用来分隔命令行参数,/ 表示选项等。不能作为文件名。 而在unix/linux系统中,/表示目录。由于web遵循unix命名,所以在网址(URL)中,/表示目录。 
反斜杠 “  ” (英文名:backslash),在windows系统中用来表示目录。在很多编程语言(C/C++等)中表示转义字符

2 在不同操作系统中的作用

Unix/Linux中,路径的分隔采用正斜杠"/",比如"/home/hutaow";而在Windows中,路径分隔采用反斜杠"",比如"C:WindowsSystem"。

Windows反斜杠(“”)的历史来自 DOS,而 DOS 的另一个传统是用斜杠(“/”)表示命令行参数,比如:dir  /s  /b shell32.dll

既然 DOS 这边斜杠被占用了,只好找另外一个。那就是 了。而在 UNIX 环境中,我们用减号(“-”)和双减号(“--”)表示命令行参数。

3 在写路径时用法

在C/C++中:

我们知道,在C/C++中 是一种转义字符,\ 他表示一个,n表示换行一样。所以C/C++中的路径名:C:Program FilesGoogleChromeChrome.exe

C中应写为filename=“C:\Program Files\Google\Chrome\Chrome.exe”或filename="C:/Program Files/Google/Chrome/Chrome.exe"

C++中为 CString filename=_T("C:\Program Files\Google\Chrome\Chrome.exe");

或CString filename=_T("C:/Program Files/Google/Chrome/Chrome.exe");

有时候,利用双反斜杠写路径也认为是对的,如

在URL中:

用  /   。如:http://news.sina.com.cn/z/yadzh2013/    。  但这里是  //   如:http://www.hao123.com/

Python中:

方法1.  使用斜杠,如  path=‘C:/Program Files/Google/Chrome/Chrome.exe’

方法2. 使用双反斜杠,如 path=‘C:\Program Files\Google\Chrome\Chrome.exe’

方法3. 使用raw string很,如 path=r‘C:Program FilesGoogleChromeChrome.exe’

利用方法3时,会遇到问题,比如

>>> print  'aanbb'
aa
bb
>>> print  r'aanbb'
aanbb

上面的n作为转义字符输出,这是没有问题的,下面中间的'没有认为是转义字符输出,这是在使用raw string时,反斜杠虽然不再做转义用,但是它还有一定的作用。

这样就产生了一个问题,如果在写路径是最后的符号是,就会报错。

如:>>> print r'c:windowstools'
SyntaxError: EOL while scanning string literal

最后的'会出错,因为把后面的’当做是正常的符号,而没有把它当做单引号与前面的匹配。

原来,raw string本来就不是为了方便写Windows路径而设计的,而是为了方便写正则表达式设计的。正则表达式中,反斜杠转义字符,因此不可能出现以反斜杠结尾的正则表达式

python斜杠与反斜杠的用法区别


标签: 反斜杠 c本文链接 http://tec.5lulu.com/detail/108aan4wm21d48s47.html

我来评分 :6.1
0

转载注明:转自5lulu技术库

本站遵循:署名-非商业性使用-禁止演绎 3.0 共享协议

www.5lulu.com