解决os.path.join()出现双反斜杠\\和冒号遗漏路径问题

一次性搞定使用os.path.join()的使用问题:

问题一举例(关于出现双反斜杠):

        当我存在路径a=‘./save/abc’,路径b=‘abc’时,直接使用os.path.join(a,b)函数的返回值会出现反斜杠./save/abc\abc, 在这里很多人可能会觉得这明明结果是单反斜杠,但实际通过控制台看变量的属性可以看到,存在着双反斜杠的输出

             代码                                                                                             输出结果                            

                                             

                                                                    变量属性

这是由于函数根据操作系统的规则来选择适当的路径分隔符,在Windows系统上,这通常是反斜杠(\,而在Unix/Linux/macOS系统上,这通常是正斜杠(/。然而由于版本和环境的问题,有时候默认的会比较混乱 ,直接给出解决办法:

手动在路径a的后面加上结束符“/”,即a=‘./save/abc/’便可以顺利解决

问题二举例(关于出现路径遗漏):

这个问题我看全网好像都没有人提过,就是在你的路径中出现冒号的时候,会出现路径遗漏的现象,例如路径a=‘./save/abc/’,路径b=‘a:bc’时,他的返回值会只存在路径b。

代码                                                                                                                  输出结果

这可能是由于当存在“冒号”的时候,后面的被视为绝对路径,就直接忽略前面的相对路径了。

直接给出解决办法:

①先把路径拆开写入列表    例如: path=[‘a’,':','bc']

②用os.path.join(a,*part)连接,这时候路径会变成“./save/abc/a\\:\\bc”

③再用replace函数把“\\”替换掉即可

具体代码和实现:

代码                                                                                        实现结果

这样就完成啦~ 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值