python数据读取路径为啥要用双反斜杠?
,声明字符串不需要转义,因此这里\ 就是一个普通反斜杠字符(
而在Windows中,正反斜杠二者皆可表示路径,通常看到是路径分隔采用反斜 杠\,比如C:\Windows\System。
有时我们会看到这样的路径写法,C:\\Windows\\System,也就是用两个反斜杠来分隔路径,这种写法在网络应用或编程中经 常看到,事实上,上面这个路径可以用C:/Windows/System来代替,不会出错。但是如果写成了C:\Windows\System, 那就可能会出现各种奇怪的错误了。
学过编程的人都应该知道,在C里面,输出字符串时,如果想输出一个换行,那就要加上\n这个标志,类似的,输出一个TAB,就加上 \t,也就是说,反斜杠(\)这个符号会把跟在它后面的字符结合起来转义成其它字符。根据这个原理,如果想输出双引号(),就需要输入 \,这样才会将包含了双引号的字符串正确的写入内存中。那么如果想输入一个反斜杠呢?很简单,只要敲\\就可以了。
看到这里或许有些人已经看出眉目了,如果C:\Windows\System这个路径字符串交给C编译器编译,实际写入内存的字符串并没 有包含反斜杠\,甚至紧跟在反斜杠后面的字母也一起被转义成了其它的字符,再次调用的话势必会出问题。
字符串解析不仅仅局限于C编译器,Java编译器、一些配置文件的解析、Web服务器等等,都会遇到对字符串进行解析的这个问题,由于传统的 Windows采用的是单个斜杠的路径分隔形式,导致在对文件路径进行解析的时候可能发生不必要的错误,所以就出现了用双反斜杠\\分隔路径的形式。 不管解析引擎是否将反斜杠解析成转义字符,最终在内存中得到的都是\,结果也就不会出问题了。