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利用Selenium进行网页自动化与动态内容抓取操作

    Python利用Selenium进行网页自动化与动态内容抓取操作

    Selenium是一个自动化测试工具,它允许开发者模拟用户的浏览器行为,执行各种交互操作,下面就跟随小编一起了解下如何使用Python和Selenium进行网页自动化与动态内容抓取吧
    2025-03-03
  • Python轻松搞定视频剪辑重复性工作问题

    Python轻松搞定视频剪辑重复性工作问题

    这篇文章主要介绍了Python轻松搞定视频剪辑重复性工作问题,大家做视频剪辑的时候,还在重复性工作吗?今天,小编来教大家如何利用Python帮你搞定这些重复性的剪辑工作,需要的朋友可以参考一下
    2021-12-12
  • Python全栈之路正则函数

    Python全栈之路正则函数

    这篇文章主要为大家介绍了Python正则函数,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2021-11-11
  • python基础知识之try...except...的详细用法实例

    python基础知识之try...except...的详细用法实例

    在各种编程语言进行工作和学习的过程中,都会有一些错误异常,下面这篇文章主要给大家介绍了关于python基础知识之try...except...的详细用法,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-08-08
  • Python装饰器使用接口测试的步骤

    Python装饰器使用接口测试的步骤

    这篇文章主要介绍了Python装饰器使用接口测试的步骤,本文通过具体示例给大家讲解的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-05-05
  • python脚本生成caffe train_list.txt的方法

    python脚本生成caffe train_list.txt的方法

    下面小编就为大家分享一篇python脚本生成caffe train_list.txt的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-04-04
  • python实现定时压缩指定文件夹发送邮件

    python实现定时压缩指定文件夹发送邮件

    这篇文章主要为大家详细介绍了python实现定时压缩指定文件夹发送邮件,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-04-04
  • python单元测试unittest实例详解

    python单元测试unittest实例详解

    这篇文章主要介绍了python单元测试unittest用法,以实例形式详细分析了Python中单元测试的概念、用法与相关使用技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-05-05
  • Pygame实战练习之飞机大战游戏

    Pygame实战练习之飞机大战游戏

    飞机大战想必是很多人童年时期的经典游戏,我们依旧能记得抱个老人机娱乐的场景,下面这篇文章主要给大家介绍了关于如何利用python写一个简单的飞机大战小游戏的相关资料,需要的朋友可以参考下
    2021-09-09
  • Python访问PostgreSQL数据库详细操作

    Python访问PostgreSQL数据库详细操作

    postgresql是常用的关系型数据库,并且postgresql目前还保持着全部开源的状态,这篇文章主要给大家介绍了关于Python访问PostgreSQL数据库的相关资料,需要的朋友可以参考下
    2023-11-11

最新评论