近期在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 osdir = "/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 osdir = "/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路径拼接,记得以‘/’结尾,才能保证跨平台使用。

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

  1. python路径拼接os.path.join()函数和os.makedirs的用法

    python路径拼接os.path.join()函数的用法 os.path.join()函数:连接两个或更多的路径名组件 1.如果各组件名首字母不包含'/',则函数会自动加上 2.如果有一个组件是一个 ...

  2. 【Python教程】 正则表达式 re模块中,反斜杠 “\“分割字符串的正确操作方法

    Python 语言使用反斜杠(\)作为转义符,对一些字符进行转义(escape),例如 "\n" "\r\n" 等.所以当 Python 字符串中如果出现反斜杠 ...

  3. JsonArray或者JsonObject转字符串后里面带有转义字符或者反斜杠的处理方式

    一般出现这种toString后json串里面带有转义字符的原因是往jsonObject中直接put了String类型的内容,比如jsonObject.put("key"," ...

  4. python路径拼接os.path.join()函数完全教程

    os.path.join()函数用于路径拼接文件路径. os.path.join()函数中可以传入多个路径: 只有一个以"/"开头的参数时,会从第一个以"/"开 ...

  5. python路径拼接os.path.join()函数的用法

    os.path.join()函数:连接两个或更多的路径名组件 1.如果各组件名首字母不包含'/',则函数会自动加上 2.如果有一个组件是一个绝对路径,则在它之前的所有组件均会被舍弃 3.如果最后一个组 ...

  6. python路径拼接os.path.join()函数完全教程_详解python路径拼接os.path.join()函数的用法...

    os.path.join()函数:连接两个或更多的路径名组件 1.如果各组件名首字母不共含'/',则函数会自动加上 demo1 import os Path1 = 'home' Path2 = 'de ...

  7. python,路径拼接,字符串拼接,os.path.join()函数怎么用?

    一.os.path.join()函数的基本规则 第一步:首先看各个path参数中有无以[盘符:]或[\]开头的字符串(\前面除了[盘符:]不能有其他),如果没有,就会把所有参数保留,参数之间有\分隔. ...

  8. os.path.join (python路径拼接)

    python路径拼接os.path.join()函数的用法 # 数据路径root = 'H:\Butterfly_detection\yolov5-1.0-baseline\VOCdevkit\VOC ...

  9. glob.glob() + os.path.join() :找到文件路径,拼接路径

    1. glob方法: glob模块的主要方法就是glob,该方法返回所有匹配的文件路径列表(list):该方法需要一个参数用来指定匹配的路径字符串(字符串可以为绝对路径也可以为相对路径),其返回的文件 ...

最新文章

  1. 深入了解 TabNet :架构详解和分类代码实现
  2. SpringMVC环境配置全过程IntelliJ IDEA 2020.3.1
  3. 51nod1836-战忽局的手段【期望dp,矩阵乘法】
  4. 超级干货!31 条2020 年最新版 ZooKeeper面试题,先收藏再看!| 博文精选
  5. oracle ndv,CBO_ORACLE
  6. 轻松带你走进shiro的世界
  7. defer 和 async 区别
  8. PC服务器实现海量数据存取的方法
  9. python画超长图-利用Python画图,千变万化,各种画图技巧!
  10. oracle游标特点,oracle游标应用 sys_refcursor 和 cursor比较
  11. 计算机网络的功能分类,计算机网络的功能与分类
  12. stylecloud:一款可以制作个性化词云图的 Python 神器
  13. Intellij创建自己的TODO
  14. Android之黄油刀(butterknife)
  15. 微软的苹果香味——专访微软MacBU组成员
  16. 不给移动一分钱!10个免费发短信的国外站点
  17. 交换机配置软件具有的作用
  18. 苹果cms模板_首涂第三套苹果CMSv10自适应视频站模板
  19. 携手京东发布锐龙品牌整机,AMD这次会赶超英特尔吗
  20. JS实现轮播图(手动切换+自动切换两种方法)

热门文章

  1. 综述科普|COVID-19的表观遗传调控机制
  2. unixbench分析_燕青: Unixbench 测试套件缺陷深度分析
  3. 如何评估域名交易网站的质量?
  4. ON1 Effects 2019 for Mac破解版永久激活方法
  5. 大厂面试官问你这些面试题你答的出吗?(附答案)
  6. mysql ibdata1_mysql ibdata1 ib_logfile的恢复
  7. 盒马与淄博布局重仓数字农业探索乡村振兴新样本
  8. HEU日常训练10.02
  9. 一个衡中走出的小程序员
  10. Android Q Beta版本