
首先,"/"左倾斜是正斜杠,""右倾斜是反斜杠,可以记为:除号是正斜杠一般来说对于目录分隔符,Unix和Web用正斜杠/,Windows用反斜杠,但是现在Windows
(一)目录中的斜杠们
python读文件需要输入的目录参数,列出以下例子:
path = r"C:Windows emp eadme.txt"
path1 = r"c:windows emp eadme.txt"
path2 = "c:\windows\temp\readme.txt"
path3 = "c:/windows/temp/readme.txt"
打开文件函数open()中的参数可以是path也可以是path1、path2、path3。
path:""为字符串中的特殊字符,加上r后变为原始字符串,则不会对字符串中的" "、" " 进行字符串转义
path1:大小写不影响windows定位到文件
path2:用一个""取消第二个""的特殊转义作用,即为"\"
path3:用正斜杠做目录分隔符也可以转到对应目录,并且在python中path3的方式也省去了反斜杠转义的烦恼
(二)正则表达式中的斜杠们
正则表达式匹配反斜杠"",为什么是"\\"或是 r"\"呢?
因为在正则表达式中为特殊符号,为了取消它在正则表达式中的特殊意义需要加一个就变成了\,但是问题又来了,也是字符串中的特殊字符,所以又要分别对两个取消其特殊意义,即为\\。Python中有一个原始字符串操作符,用于那些字符串中出现特殊字符,在原始字符串中,没有转义字符和不能打印的字符。这样就可以取消了在字符串中的转义功能,即r"\"。
?
在编码和日常工作学习中,常常会用到正斜杠’/‘和反斜杠’’,有时候我会弄混,索性今天就来系统的记录它们的作用和区别: 历史来源
操作系统
设计了这种路径分隔法,它使用斜杠:/。由于网络是首先应用在 UNIX 计算机之间的,至今为止,一半以上的网络服务器仍是使用 UNIX 操作系统,所以网址也沿用了斜杠作路径分隔符。
DOS 2.0
从 UNIX 中借鉴了这种目录结构,但由于 DOS 中,斜杠已经用来作为命令行参数的标志了(UNIX 中用的是“ - ”符),所以只得使用反斜杠:
Windows 时代
很多时候已经没有命令行参数的干扰,加上网络使用的扩展,现在斜杠和反斜杠大多时候可以互换,没有什么影响。
互联网世界
斜杠“/”是很常见的一个符号。它的位置在右 Shift 的左边,不用按 Shift 就能够输入。
斜杠之所以占据那么重要的地位,应该得益于操作系统(Unix、Dos)的流行。在命令行中,一个斜杠往往是表示着根目录,也作为目录与目录之间的分割。 使用要点
正斜杠,符号是"/"; 反斜杠,符号是""。
正斜杠/表示除法,分割。
在unix系统中,正斜杠/表示目录。由于web遵循unix命名,所以在网址(URL)中,/表示目录。
在windows系统中,正斜杠/通常用来分割命令行参数,用表示目录。
windows本地路径用,如C:windowssystem32。
网络一般用/,如http://www.xxx.com/ 注意事项
其实到了互联网时代,除了 URL 中可能要用到斜杠外,其他地方很少见到它的身影,它并没有随着历史而去。在编程中,经常用到“/”和“”。在程序中,有时我们会看到这样的路径写法,“D:DriverLan” 也就是两个反斜杠来分隔路径。事实上,上面这个路径可以用 “D:/Driver/Lan” 来代替,不会出错,写成了"D:DriverLan"就可能会出现错误。至于出现错误的原因,还要从字符串解析这方面来分析。学过编程的人都知道,在C里面,输入字符串时,如果想输入一个换行,那就要加上’
’这个标志,输出一个TAB 就要加上 ‘ ’,反斜杠(’’)这个符号会把跟在它后面的字符串结合起来转义成其它字符。根据这个原理,如果想输出双引号(’ " ‘)就要输入’ " ‘,才能将包含了双引号的字符正确的写入到内存中。要想输入一个反斜杠的话,只有敲’ '了,这就是前面为什么会用两个反斜杠来分隔路径的原因。如果将"D:DriverLan"这个路径字符串交给C语言编译器编译,实际上写入内存的字符串并没有包含反斜杠"",甚至跟在它后面的字母也会一起被转义成了其它的字符。字符串解析不仅仅局限于C编译器,Java编译器、一些配置文件的解析、WEB服务器等等,都会遇到这个问题。
?