- 在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语言中一样引起争议。
你好,python初学者,使用的是Mac版,但是不知到文件夹的所在路径怎么写?求指导
mac和Linux是一样的