python中的路径拼接问题

 更新时间:2023年03月03日 09:44:30   作者:酷酷的Herio  
这篇文章主要介绍了python中的路径拼接问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

python路径拼接

使用:

  • os.path.join()函数:连接两个或更多的路径名组件
  • 如果有一个组件是一个绝对路径,则在它之前的所有组件均会被舍弃
  • 如果最后一个组件为空,则生成的路径以一个 \ 分隔符结尾
def test2():
    s1, s2, s3 = 'home', 'courses', 'test'
    res = os.path.join(s1, s2, s3)
    print(res)  # home\courses\test
    s2 = '/courses'
    res = os.path.join(s1, s2, s3)
    print(res)  # /courses\test
    s1, s2, s3 = '\home', 'courses', 'test'
    res = os.path.join(s1, s2, s3)
    print(res)  # \home\courses\test
    s1, s2, s3 = '\home', 'courses', ''
    res = os.path.join(s1, s2, s3)
    print(res)  #\home\courses\

home\courses\test
/courses\test
\home\courses\test
\home\courses\

python os.path.join路径拼接错误

ss = 'E:\\Cloud\\20200813105812L\\res\\1\\425'
a = '\\8_live_1962854245_export_files\\media'

c = os.path.join(ss,a)
print(c)

得到的是如下结果:

在这里插入图片描述

os.path.join()函数

连接两个或更多的路径名组件:

参数可能存在多个

从右边开始数,遇到第一个以”/”开头的参数,开始拼接,这个参数左边的全部丢弃

print("0:",os.path.join('\\aaaa','bbbb','ccccc.txt'))
print("0:",os.path.join('aaaa','\\bbbb','ccccc.txt'))
print("0:",os.path.join('aaaa','bbbb','\\ccccc.txt'))
print("0:",os.path.join('aaaa','\\bbbb','\\ccccc.txt'))
print("0:",os.path.join('aaaa','/bbbb','\\ccccc.txt'))
print("0:",os.path.join('aaaa','/bbbb','/ccccc.txt'))

结果:
0: \aaaa\bbbb\ccccc.txt
0: \bbbb\ccccc.txt
0: \ccccc.txt
0: \ccccc.txt	
0: \ccccc.txt
0: /ccccc.txt

从右边开始数,遇到第一个以”/”开头的参数,开始拼接,这个参数左边的全部丢弃

print("1:",os.path.join('aaaa','xxxxxx','./bbb','ccccc.txt'))
print("1:",os.path.join('./aaaa','xxxxxx','./bbb','./ccccc.txt'))

结果:
1: aaaa\xxxxxx\./bbb\ccccc.txt
1: ./aaaa\xxxxxx\./bbb\./ccccc.txt

带盘符,/,\各种复杂情况(正式使用前先测试,也可以去看看源码具体是怎么解析的)

# 后面的斜杠反斜杠
print("1:",os.path.join('c:','bbb'))
print("1:",os.path.join('c:','bbb/\\','ccccc.txt'))

# 未加盘符
print("2:",os.path.join('c','/bbb','ccccc.txt')) # 会以/bbb开头
print("2:",os.path.join('c:','/bbb','ccccc.txt')) # 虽然有反斜杆 但是依旧以C:开头
print("2:",os.path.join('c:/','/bbb','ccccc.txt')) # 多个/只会有一个

# 盘符后面未加斜杠
print("3:",os.path.join('c:','bbb','ccccc.txt'))
print("3:",os.path.join('c:/','bbb','ccccc.txt'))

结果:
1: c:bbb
1: c:bbb/\ccccc.txt
2: /bbb\ccccc.txt
2: c:/bbb\ccccc.txt
2: c:/bbb\ccccc.txt
3: c:bbb\ccccc.txt
3: c:/bbb\ccccc.txt

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Python图片批量自动抠图去背景的代码详解

    Python图片批量自动抠图去背景的代码详解

    这篇文章主要介绍了Python图片批量自动抠图去背景,只要上传图片,就可以自动把背景去掉把目标对象抠出来,非常方便,对Python图片批量自动抠图去背景的代码感兴趣的朋友一起看看吧
    2022-03-03
  • python解包用法详解

    python解包用法详解

    在本篇文章里小编给大家整理的是关于python解包用法详解内容,有需要的朋友们可以跟着一起学习下。
    2021-02-02
  • python Web开发你要理解的WSGI & uwsgi详解

    python Web开发你要理解的WSGI & uwsgi详解

    这篇文章主要给大家介绍了关于python Web开发你一定要理解的WSGI & uwsgi的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考借鉴,下面随着小编来一起学习学习吧
    2018-08-08
  • Python中typing模块的具体使用

    Python中typing模块的具体使用

    本文主要介绍了Python中typing模块的具体使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-05-05
  • pandas条件组合筛选和按范围筛选的示例代码

    pandas条件组合筛选和按范围筛选的示例代码

    这篇文章主要介绍了pandas条件组合筛选和按范围筛选的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-08-08
  • python微信跳一跳游戏辅助代码解析

    python微信跳一跳游戏辅助代码解析

    本篇文章给大家详细讲解了用python写的一个微信跳一跳辅助脚本的源码,对此有兴趣的朋友参考下吧。
    2018-01-01
  • 解决python执行不输出系统命令弹框的问题

    解决python执行不输出系统命令弹框的问题

    今天小编就为大家分享一篇解决python执行不输出系统命令弹框的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-06-06
  • Django 添加静态文件的两种实现方法(必看篇)

    Django 添加静态文件的两种实现方法(必看篇)

    下面小编就为大家带来一篇Django 添加静态文件的两种实现方法(必看篇)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-07-07
  • Python+Dlib+Opencv实现人脸采集并表情判别功能的代码

    Python+Dlib+Opencv实现人脸采集并表情判别功能的代码

    这篇文章主要介绍了Python+Dlib+Opencv实现人脸采集并表情判别,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-07-07
  • Python脚本实现下载合并SAE日志

    Python脚本实现下载合并SAE日志

    这篇文章主要介绍了Python脚本实现下载合并SAE日志,本文讲解了代码编写过程,然后给出了完整代码,需要的朋友可以参考下
    2015-02-02

最新评论