windows平台路径python路径字符串拼接os.path.join()出现反斜杠‘\‘问题

近期在win10环境调试linux python代码时遇到一个有趣的现象,如题目所述。

现象

请看示例。
代码:

dir = "/home/lhb"
file = "pip.ini"
path = os.path.join(dir, file)
print(path)

输出:

/home/lhb\pip.ini

该结果再vs code或git bash窗口执行都一样结果。
linux平台的代码执行结果:

dcs-50@root:/home/lhb/tool$ cat test.py
import os

dir = "/home/lhb/"
file = "pip.ini"
path = os.path.join(dir, file)
print(path)
dcs-50@root:/home/lhb/tool$ python3 test.py
/home/lhb/pip.ini

分析

经过百度分析,原来有这样的规律: os.path.join()在Linux/macOS下会以斜杠(/)分隔路径,而在Windows下则会以反斜杠(\)分隔路径
平台系统的差异,一套代码不能打天下平台兼容性就有问题了。

解决方法

路径字符串需要以‘/’结尾,最后一个字符串不需要。
win10下,修改代码并执行如下:

lhb@DESKTOP-L64O580 MINGW64 ~/Desktop (master|SPARSE)
$ cat test.py
import os

dir = "/home/lhb/"
file = "pip.ini"
path = os.path.join(dir, file)
print(path)


lhb@DESKTOP-L64O580 MINGW64 ~/Desktop (master|SPARSE)
$ python test.py
/home/lhb/pip.ini

结论

python路径拼接,记得以‘/’结尾,才能保证跨平台使用。

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值