python之os路径被转义的问题

 更新时间:2024年02月07日 10:22:07   作者:1037号森林里一段干木头  
这篇文章主要介绍了python之os路径被转义的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

python os路径被转义问题

以前常碰到字符串前面加r的情况,不加r有时候有问题有时候没有,也就没深究,这次就碰到一个问题搞了半天发现就是这里路径被转义了。

文件路径中的单双正反斜杠/ \ // \的意义

在python中反斜杠 \ 的功能是转义,例如:\n表示换行,\t 表示水平制表符,也就是tab键。

在windows中 反斜杠 \ 也用来表示路径分隔符。

例:

path = "K:\imageData\neg\4\044.bmp"
print(path)
K:\imageData
eg$.bmp

这里\n表示换行,所以输出到K:\imageData就换行了,

  • \4表示输出两个空格
  • \0 表示八进制编码的ASCII
  • \0后面的两位数就是8进制数表示的ASCII值
  • \0后面的8进制数44表示为十进制是4*8+4=36
  • 在ASCII表中正好对应$符号。

image.png

解决方案

1.字符串前面加r可以防止字符串被转义,字符串前加r是告诉编译器把后面的内容当成纯字符串

path = r"K:\imageData\neg\4\001.bmp"
print(path)

K:\imageData\neg\4\001.bmp

2.采用正斜杠不会被转义 “/”

path = "K:/imageData/neg/4/001.bmp"
print(path)

K:/imageData/neg/4/001.bmp

3.采用双反斜线 “\\”

path = "K:\\imageData\\neg\\4\\001.bmp"
print(path)

K:\imageData\neg\4\001.bmp

如果是在os.path.join()中生成的路径,没法显示的用手改,可以配合split() 和 str.join()方法解决

import os
folder = r"K:\imageData\neg\4"
name = "001.bmp"
path = os.path.join(folder,name)
print("path:",path)

path2 = "\\\\".join(path.split("\\")) 
print("path2:",path2)

path3 = "/".join(path.split("\\")) 
print("path3:",path3)

path: K:\imageData\neg\4\001.bmppath2: K:\\imageData\\neg\\4\\001.bmppath3: K:/imageData/neg/4/001.bmp

split and rsplit的用法

split("\")把所有有 \ 的地方断开,返回一个列表

path = r"K:\imageData\neg\4\001.bmp"
path.split('\\')

['K:', 'imageData', 'neg', '4', '001.bmp']

rsplit("\",1)把最后出现"\"的地方断开返回一个列表

path.rsplit('\\',1)

['K:\\imageData\\neg\\4', '001.bmp']

path.rsplit('\\',2)

['K:\\imageData\\neg', '4', '001.bmp']

rsplit()取负数时退化为split()方法

path.rsplit('\\',-1)

['K:', 'imageData', 'neg', '4', '001.bmp']

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • 基于Python的接口自动化读写excel文件的方法

    基于Python的接口自动化读写excel文件的方法

    这篇文章主要介绍了基于Python的接口自动化读写excel文件,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-01-01
  • 深入理解Python中的super()方法

    深入理解Python中的super()方法

    super 是用来解决多重继承问题的,直接用类名调用父类方法在使用单继承的时候没问题,但是如果使用多继承,会涉及到查找顺序(MRO)、重复调用(钻石继承)等种种问题。这篇文章主要给大家介绍了关于Python中super()方法的相关资料,需要的朋友可以参考下。
    2017-11-11
  • Python中常见的导入方式总结

    Python中常见的导入方式总结

    这篇文章主要介绍了Python中常见的导入方式总结,文中有非常详细的代码示例,对正在学习python的小伙伴们有非常好的帮助,需要的朋友可以参考下
    2021-05-05
  • linux中使用Python对图片进行批量命名

    linux中使用Python对图片进行批量命名

    大家好,本篇文章主要讲的是linux中使用Python对图片进行批量命名,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下,方便下次浏览
    2021-12-12
  • Python实现解析Bit Torrent种子文件内容的方法

    Python实现解析Bit Torrent种子文件内容的方法

    这篇文章主要介绍了Python实现解析Bit Torrent种子文件内容的方法,结合实例形式分析了Python针对Torrent文件的读取与解析相关操作技巧与注意事项,需要的朋友可以参考下
    2017-08-08
  • 解决ToPILImage时出现维度报错问题pic should be 2/3 dimensional. Got 4 dimensions.

    解决ToPILImage时出现维度报错问题pic should be 2/3 d

    这篇文章主要介绍了解决ToPILImage时出现维度报错问题pic should be 2/3 dimensional. Got 4 dimensions.具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-02-02
  • Python和C/C++交互的几种方法总结

    Python和C/C++交互的几种方法总结

    这篇文章主要给大家总结介绍了Python和C/C++交互的几种方法,文中介绍的非常详细,对大家具有一定的参考学习价值,需要的朋友们下面来一起看看吧。
    2017-05-05
  • python MD5加密的示例

    python MD5加密的示例

    这篇文章主要介绍了python MD5加密的示例,帮助大家更好的利用python进行加密,感兴趣的朋友可以了解下
    2020-10-10
  • 学懂Python字符编码避免乱码陷阱

    学懂Python字符编码避免乱码陷阱

    在Python编程中,处理字符编码和乱码问题是一个常见的挑战,特别是在处理文本数据、文件输入/输出和网络通信时,可能会遇到各种字符编码问题,本文章将深入探讨Python中的乱码问题,解释其原理,并提供解决办法,以确保你的应用程序能够正确处理各种编码情况
    2023-12-12
  • Python图像处理PIL各模块详细介绍(推荐)

    Python图像处理PIL各模块详细介绍(推荐)

    这篇文章主要介绍了Python图像处理PIL各模块详细介绍,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-07-07

最新评论