Python中的左斜杠、右斜杠(正斜杠和反斜杠)

首先,"/"左倾斜是正斜杠,"\"右倾斜是反斜杠,可以记为:除号是正斜杠一般来说对于目录分隔符,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 Image

pil_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服务器等等,都会遇到这个问题。

 

  • 4
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
Python斜杠可以通过使用转义字符来替换为斜杠。转义字符是一个反斜杠\,它可以让Python解释器将特殊字符识别为普通字符。例如,如果你想将一个字符串斜杠替换为斜杠,你可以使用替换函数replace()和转义字符\来实现。 以下是一个示例代码: ``` string = "Python斜杠\\可以换成斜杠/" new_string = string.replace('\\', '/') print(new_string) ``` 输出结果为:Python斜杠/可以换成斜杠/ 在这个示例,我们使用replace()函数将字符串斜杠替换为斜杠。注意,在字符串使用转义字符\来表示斜杠。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [一篇文章搞懂python的转义字符及用法](https://download.csdn.net/download/weixin_38620734/14840463)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [Python则表达式的7个使用典范(推荐)](https://download.csdn.net/download/weixin_38713996/13675195)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [python将双反斜杠“\\“替换成单反斜杠“\](https://blog.csdn.net/DH2442897094/article/details/126138719)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值