最近在windows上跑ubuntu的代码发现了路径分隔符错乱的问题,路径怎么都匹配不对,一直报错,折腾了半天,总算是找到解决方法了。
在Windows上,文件的路径分隔符是’’,在Linux上是’/’。
为了让代码在不同的平台上都能运行,那么路径应该写’‘还是’/‘呢?
使用os.sep的话,就不用考虑这个了,os.sep根据你所处的平台,自动采用相应的分隔符。即:将所有的’‘或者’/'都采用os.sep来代替!
举例
Linux系统某个路径,/usr/share/python,那么上面的os.sep就是‘/’
windows系统某个路径,C:\Users\Public\Desktop,那么上面的os.sep就是‘\’.
if os.sep in filename:
# /folder/bottle_1.jpg --> bottle_1.jpg
filename = filename.split(os.sep)[-1]
使用os.sep,无论是在哪个平台上,都可以识别到分隔符