点击小箭头阅读更舒适 如果觉得卡顿,请点击小眼睛关闭蜘蛛网特效

斜杠(/)、反斜杠(\)、双反斜杠(\\)区别简要辨析

《斜杠(/)、反斜杠(\)、双反斜杠(\)区别简要辨析》
注意,/ 为正斜杠(forward slash),而 \ 为反斜杠(backward slash)。
我们在处理地址的时候,不同的系统处理地址使用的斜杠也是不同的,
  • windows系统中(window10),\ 用来表示目录。
  • 而在unix系统中(ubuntu,centos等),使用 / 来表示目录。
  • 而在浏览器汇总,由于web遵循unix命名,所以在网址(URL)中,/ 表示目录。

我们在学习C语言的过程中应该都知道,我们在字符串中使用反斜杠来表示一些其他的符号,比如 \b 表示退格键, \n 为经典的换行键。

在python中对于斜杠的处理和C语言是一样的:

print('I can\'t !')
I can't !

使用 反斜杠 \ 来代表转义符。

但是在python中处理地址有几个需要注意的地方,在linux系统下获取一个文件的地址是正斜杠来表示的:‘ /home/prototype/Desktop/deep-painterly-pytorch/datasets/test.jpg ‘,而在windows中获取地址就是这样的:’ C:\Users\dell\Desktop\pytorch-fcn-master\examples\voc\data\datasets\VOC\benchmark_RELEASE\dataset\img\2008_000007.jpg ‘,我们之前说过,在python中,处理反斜杠的方式和C语言是一样的,如果你想通过这个地址来读取一个图片:

(使用python-opencv作为读取图片的例子,cv2为python版本的opencv库,而imread是opencv的图像读取函数)

import cv2
image = cv2.imread('C:\Users\dell\Desktop\pytorch-fcn-master\examples\voc\data\datasets\VOC\benchmark_RELEASE\dataset\img\2008_000007.jpg')

很容易就报错了:

  File "<ipython-input-6-04e24e16183a>", line 1
    image = cv2.imread('C:\Users\dell\Desktop\pytorch-fcn-master\examples\voc\data\datasets\VOC\benchmark_RELEASE\dataset\img\2008_000007.jpg')
                      ^
SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 2-3: truncated \UXXXXXXXX escape

报错的信息很明显:truncated \UXXXXXXXX escape, python解释器在这部分没有识别出来,就是嘛,你让这个解释器识别 \Users ,这个没有什么意义。

《斜杠(/)、反斜杠(\)、双反斜杠(\)区别简要辨析》

上图是pycharm中console窗口的这行代码,可以看到解释器对其实时进行了分析,看到红色波浪线和绿色代码以及黄色代码了吗,黄色代码代表解释器对这个反斜杠以及后面的数字的’组合分析’,而红色波浪线则提示错误的地方。

当然如果写成这样是正确的:image = cv2.imread(‘C:/Users/dell/Desktop/pytorch-fcn-master/examples/voc/data/datasets/VOC/benchmark_RELEASE/dataset/img/2008_000007.jpg’)

那如果我们写成这样呢:

image = cv2.imread('C:\\Users\\dell\\Desktop\\pytorch-fcn-master\\examples\\voc\\data\\datasets\\VOC\\benchmark_RELEASE\\dataset\\img\\2008_000007.jpg')

答案也是正确的,其实在python中使用正斜杠和反斜杠都是可以当做地址目录符来进行读取的,只不过如果不\\这样写,在python中就会和C语言中一样引起争议。

 

 

  点赞
本篇文章采用 知识共享署名-相同方式共享 4.0 国际许可协议 进行许可
转载请务必注明来源: https://oldpan.me/archives/forward-slash-backward-slash-distinguish

   欢迎关注Oldpan博客微信公众号,同步更新博客深度学习文章。


发表评论

电子邮件地址不会被公开。 必填项已用*标注

评论审核已启用。您的评论可能需要一段时间后才能被显示。