python 路径被转义问题

Python018

python 路径被转义问题,第1张

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

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

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

例:

这里\n表示换行,所以输出到K:\imageData就换行了,\4表示输出两个空格,\0 表示八进制编码的ASCII,\0后面的两位数就是8进制数表示的ASCII值,\0后面的8进制数44表示为十进制是4*8+4=36,在ASCII表中正好对应$符号。

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

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

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

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

这是因为mac系统和windows系统关于路径分隔符不一样产生的问题。

可以通过python自带的os模块来解决这个问题。

说明:

os.getcwd()可以获取当前路径的绝度路径字符串,

os.sep可以获取到当前操作系统的路径分隔符。

而这些字符串规则是完全符合当前操作系统的。

也就是说,

windows系统是路径是这样(C:\Users\xxx\Desktop),路径分隔符是 \,

而macOS系统长成这样(/home/user/desktop), 路径分隔符是 /

相关的路径详情可以到黑马程序员论坛去了解一下,里面技术老师的文章会更详细。我入门的时候全靠黑马,感谢!

os.pardir- 路径组件,意味着将目录树向上遍历一级(例如,“ ..”)。

os.path 函数可用于将表示文件名的字符串解析为其组成部分。重要的是要意识到这些功能不依赖于实际存在的路径。路径解析取决于以下定义的一些 os 变量:

1、os.sep- 路径部分之间的分隔符。

2、os.extsep- 文件名和文件“扩展名”之间的分隔符(例如,“ .”)。

3、os.curdir- 引用当前目录的路径组件(例如,“ .”)。

扩展资料

os.getcwd(): 获取当前工作目录,即当前python脚本工作的目录路径。

os.chdir("dirname") :改变当前脚本工作目录;相当于shell下cd。

os.curdir 返回当前目录: ('.')。

os.pardir 获取当前目录的父目录字符串名:('..')。

os.makedirs('dirname1/dirname2') :可生成多层递归目录。

os.removedirs('dirname1'): 若目录为空,则删除,并递归到上一级目录,如若也为空,则删除,依此类推。