首先,"/"左倾斜是正斜杠,"\"右倾斜是反斜杠,可以记为:除号是正斜杠一般来说对于目录分隔符,Unix和Web用正斜杠/,Windows用反斜杠,但是现在Windows

(一)目录中的斜杠们

python读文件需要输入的目录参数,列出以下例子:

path = r"C:\Windows\temp\readme.txt"

path1 = r"c:\windows\temp\readme.txt"

path2 = "c:\\windows\\temp\\readme.txt"

path3 = "c:/windows/temp/readme.txt"

打开文件函数open()中的参数可以是path也可以是path1、path2、path3。

path:"\"为字符串中的特殊字符,加上r后变为原始字符串,则不会对字符串中的"\t"、"\r" 进行字符串转义

path1:大小写不影响windows定位到文件

path2:用一个"\"取消第二个"\"的特殊转义作用,即为"\\"

path3:用正斜杠做目录分隔符也可以转到对应目录,并且在python中path3的方式也省去了反斜杠\转义的烦恼

(二)正则表达式中的斜杠们

正则表达式匹配反斜杠"\",为什么是"\\\\"或是 r"\\"呢?

因为在正则表达式中\为特殊符号,为了取消它在正则表达式中的特殊意义需要加一个\就变成了\\,但是问题又来了,\也是字符串中的特殊字符,所以又要分别对两个\取消其特殊意义,即为\\\\。Python中有一个原始字符串操作符,用于那些字符串中出现特殊字符,在原始字符串中,没有转义字符和不能打印的字符。这样就可以取消了\在字符串中的转义功能,即r"\\"。

from PIL import Imagepil_im = Image.open(r'D:\test_picture\3.jpg')
pil_im = Image.open(r'd:\test_picture\3.jpg')
pil_im = Image.open('D:\\test_picture\\3.jpg')
pil_im = Image.open('D:/test_picture/3.jpg')#pil_im = Image.open('D:\test_picture\3.jpg')#报错,地址解析有误pil_im.show()


在编码和日常工作学习中,常常会用到正斜杠’/‘和反斜杠’’,有时候我会弄混,索性今天就来系统的记录它们的作用和区别:

历史来源

操作系统

设计了这种路径分隔法,它使用斜杠:/。由于网络是首先应用在 UNIX 计算机之间的,至今为止,一半以上的网络服务器仍是使用 UNIX 操作系统,所以网址也沿用了斜杠作路径分隔符。

DOS 2.0
从 UNIX 中借鉴了这种目录结构,但由于 DOS 中,斜杠已经用来作为命令行参数的标志了(UNIX 中用的是“ - ”符),所以只得使用反斜杠:\

Windows 时代
很多时候已经没有命令行参数的干扰,加上网络使用的扩展,现在斜杠和反斜杠大多时候可以互换,没有什么影响。

互联网世界
斜杠“/”是很常见的一个符号。它的位置在右 Shift 的左边,不用按 Shift 就能够输入。
斜杠之所以占据那么重要的地位,应该得益于操作系统(Unix、Dos)的流行。在命令行中,一个斜杠往往是表示着根目录,也作为目录与目录之间的分割。

使用要点

正斜杠,符号是"/"; 反斜杠,符号是""。

正斜杠/表示除法,分割。

在unix系统中,正斜杠/表示目录。由于web遵循unix命名,所以在网址(URL)中,/表示目录。

在windows系统中,正斜杠/通常用来分割命令行参数,用\表示目录。

windows本地路径用\,如C:\windows\system32。

网络一般用/,如http://www.xxx.com/

注意事项

其实到了互联网时代,除了 URL 中可能要用到斜杠外,其他地方很少见到它的身影,它并没有随着历史而去。在编程中,经常用到“/”和“\”。在程序中,有时我们会看到这样的路径写法,“D:\Driver\Lan” 也就是两个反斜杠来分隔路径。事实上,上面这个路径可以用 “D:/Driver/Lan” 来代替,不会出错,写成了"D:\Driver\Lan"就可能会出现错误。至于出现错误的原因,还要从字符串解析这方面来分析。学过编程的人都知道,在C里面,输入字符串时,如果想输入一个换行,那就要加上’\n’这个标志,输出一个TAB 就要加上 ‘\t’,反斜杠(’’)这个符号会把跟在它后面的字符串结合起来转义成其它字符。根据这个原理,如果想输出双引号(’ " ‘)就要输入’ " ‘,才能将包含了双引号的字符正确的写入到内存中。要想输入一个反斜杠的话,只有敲’ \ '了,这就是前面为什么会用两个反斜杠来分隔路径的原因。如果将"D:\Driver\Lan"这个路径字符串交给C语言编译器编译,实际上写入内存的字符串并没有包含反斜杠"",甚至跟在它后面的字母也会一起被转义成了其它的字符。字符串解析不仅仅局限于C编译器,Java编译器、一些配置文件的解析、WEB服务器等等,都会遇到这个问题。

Python中的左斜杠、右斜杠(正斜杠和反斜杠)相关推荐

  1. Oracle中的左连接与右连接

    Oracle中的左连接与右连接 在Oracle PL-SQL中,左连接和右连接以如下方式来实现 查看如下语句: SELECT emp_name, dept_name  FORM Employee, D ...

  2. 详解C++中地左值、右值和移动

    左值持久,右值短暂 C++ primer中提到过:当一个对象被用作右值时用的是对象的值(内容),当对象被用做左值时用的是对象的身份(在内存中的位置) [ p r i m e r ] ^{[primer ...

  3. 理解C和C++中的左值和右值

    翻译至https://eli.thegreenplace.net/2011/12/15/understanding-lvalues-and-rvalues-in-c-and-c/ C/C++编程中不是 ...

  4. C++中的左值和右值

    左右值的概念 C++中左值(lvalue)和右值(rvalue)在C++11后变得尤为重要,是理解 move.forward等新语义的基础. 左值和右值这两个概念是从C中传承过来的. 左值指的是:既能 ...

  5. C++ 中的左值和右值

    C++ 中的左值和右值 简介 <C++ Primer>中左值和右值的描述如下: C++ 的表达式要不然是右值(rvalue,读作"are-value"),要不然就是左值 ...

  6. matlab怎么输入斜杠,如何实现Matlab的mldivide(又称反斜杠运算符“ \”)

    对于x = A\b,反斜杠运算符包含许多算法来处理不同种类的输入矩阵.因此,对矩阵A进行诊断,并根据其特性选择执行路径. 以下页面以伪代码描述何时A为完整矩阵: if size(A,1) == siz ...

  7. php 目录斜杠 不同服务器,PHP_PHP在引号前面添加反斜杠(PHP去除反斜杠),一般空间商提供的服务器空间 - phpStudy...

    PHP在引号前面添加反斜杠(PHP去除反斜杠) 一般空间商提供的服务器空间默认PHP 指令 magic_quotes_gpc是on的,也就是打开的.这时候就可以用stripslashes() 函数删除 ...

  8. c++中的左值与右值

    转载自 http://www.cnblogs.com/catch/p/3500678.html 左值 (lvalue)和右值 (rvalue) 是 c/c++ 中一个比较晦涩基础的概念,有的人可能甚至 ...

  9. c 表达式必须是可修改的左值_C++中的左值,右值,左值引用,右值引用

    童帅 2020-2-22 文中的"表达式"都是指赋值表达式 左值,右值,左值引用,右值引用 到底是什么 左值和右值 int a = 10; int b = 5; int c = a ...

最新文章

  1. 转载--httpclient原理和应用
  2. Oracle Events事件
  3. 环境/---Liunx环境安装
  4. 【Node】node.js实现服务器的反向代理,解决跨域问题
  5. 云炬WEB开发教程2-2 node.js和npm介绍和安装
  6. Java银行开户,取钱,存钱,查询余额,退出。。。。。
  7. 敏捷结果30天之第十二天:效率角色-你是启动者还是完成者
  8. View requires API level 14 (current min is 8): GridLayout
  9. dicom传图像故障
  10. java range注解_最全的Java Spring注解
  11. 暴风一号病毒(1kb病毒),U盘只剩快捷方式,文件消失
  12. 数据中心建筑设计及功能区布局的注意事项
  13. DXGI抓屏优化扩展:GPU硬件编码保存文件即录像为MP4和FLV,外加麦克风+计算机声音
  14. Vue项目使用v-drag实现拖拽功能
  15. java available_关于InputStream类的available()方法
  16. 解决virtualbox导入虚拟机报错E_INVALIDARG (0x80070057)问题
  17. 视频号怎么赚钱?视频号有什么功能?
  18. 同元软控助力复杂系统数字孪生落地应用
  19. flume+kafka整合采集数据案例
  20. AppScan 是一款web安全扫描工具

热门文章

  1. Java语言Int与byte[]互转详解分析
  2. 关于使用U盘安装ESXi发生的一些错误及解决经验
  3. 单片机按键启停c语言,ZigBee-CC2530单片机 - 按键控制跑马灯的启停
  4. 英语达人告诉你,如何用美剧真正提升你的英语水平
  5. 关于镜像文件和虚拟光驱
  6. NT5.X/NT6.0双启动的故障解决
  7. 有一种爱叫思念,黄陈晨
  8. SIEM、SOC、MSS三者的区别与联系
  9. 三星4521f打印,复印动作慢要等很久
  10. 华硕A456UR7500初次非完美黑苹果安装教程