一次性搞定使用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函数把“\\”替换掉即可
具体代码和实现:
代码 实现结果
这样就完成啦~