python中的路径拼接问题

目录
  • python路径拼接
  • python os.path.join路径拼接错误
    • os.path.join()函数
  • 总结

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

总结

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

(0)

相关推荐

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

    os.path.join()函数:连接两个或更多的路径名组件 1.如果各组件名首字母不包含'/',则函数会自动加上 demo1 import os Path1 = 'home' Path2 = 'develop' Path3 = 'code' Path10 = Path1 + Path2 + Path3 Path20 = os.path.join(Path1,Path2,Path3) print ('Path10 = ',Path10) print ('Path20 = ',Path20) 输出

  • python 拼接文件路径的方法

    如下所示: <code class="language-python">import os base_dir = os.path.dirname(__file__) # 获取当前文件目录 path = os.path.join(base_dir,'123.txt') # 获取文件拼接后的路径</code> 以上这篇python 拼接文件路径的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们.

  • 浅谈python中拼接路径os.path.join斜杠的问题

    调试程序的过程中,发现通过os.path.join拼接的路径出现了反斜杠 directory1='/opt/apps/upgradePackage' directory2='icp_v1.8.0' directory3=os.path.join(directory1,directory2) print('directory3 : %s' %directory3) 执行结果 directory3 : /opt/apps/upgradePackage\icp_v1.8.0 拼接的符号成了"\&quo

  • python中的路径拼接问题

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

  • 详解Python中的路径问题

    1. 绝对路径引入 Python 在搜索模块时,依次搜索sys.path里的位置,直到找到模块为止.下面命令可以查看当前的搜索路径: import sys print(sys.path) sys.path的初始值来源于两个(其实还有一些更复杂但不常用的).一个是系统的PYTHONPATH变量,因此可通过设置该变量,来设置 Python 默认的搜索位置.比如: export PYTHONPATH=/opt/python:$PYTHONPATH echo $PYTHONPATH 将该命令放在系统初始

  • python中各种路径设置的方法详解

    目录 python永久添加搜索路径_Python sys.path永久添加 临时性添加 import sys os查看当前路径 _file_ os.path.dirname(path) 附:python路径的查看与修改 总结 python永久添加搜索路径_Python sys.path永久添加 在用户目录下,找到隐藏文件.bashrc 文件 然后在末尾添加 export PYTHONPATH=$PYTHONPATH:/home/dev/custom_path 操作:vim .bashrc 添加

  • 解决Python中字符串和数字拼接报错的方法

    前言 众所周知Python不像JS或者PHP这种弱类型语言里在字符串连接时会自动转换类型,如果直接将字符串和数字拼接会直接报错. 如以下的代码: # coding=utf8 str = '你的分数是:' num = 82 text = str+num+'分 | 琼台博客' print text 执行结果 直接报错:TypeError: cannot concatenate 'str' and 'int' objects 解决这个方法只有提前把num转换为字符串类型,可以使用bytes函数把int

  • 理解Python中的绝对路径和相对路径

    本文介绍了Python中的绝对路劲和相对路径,分享给大家,也给自己留个笔记 1.绝对路径 os.path.abspath("文件名"): 显示的是一个文件的绝对路劲 eg: >>> import os >>> os.chdir("E:\\PycharmProjects\\odycmdb\\odycmdb") >>> os.listdir() ['settings.py', 'urls.py', 'wsgi.py'

  • python中os操作文件及文件路径实例汇总

    本文实例讲述了python中os操作文件及文件路径的方法.分享给大家供大家参考.具体分析如下: python获取文件上一级目录:取文件所在目录的上一级目录 复制代码 代码如下: os.path.abspath(os.path.join(os.path.dirname('settings.py'),os.path.pardir)) os.path.pardir是父目录,os.path.abspath是绝对路径 举例具体看一下输出: 复制代码 代码如下: print os.path.dirname(

  • 在cmd中查看python的安装路径方法

    我相信一定有很多的人跟我一样,经常忘记Python安装的路径,每当用到的时候,最笨的办法就是在全局电脑里,直接查找Python,这样是肯定能查到的,但是如果你的电脑文件超级多,这将是一个工厂量很大的事情,你要等好久的. 便捷的方法时: 打开我们的cmd命令 输入Python 输入 import sys 输入 print(sys.path) 列表中的第四个将是你的安装路径 python是解释型脚本语言,在执行时,逐句解释执行,不需要进行预编译.但需要有自身的Python解释器. 所以在执行Pyth

  • 详解在Python中以绝对路径或者相对路径导入文件的方法

    1.在Python中以相对路径或者绝对路径来导入文件或者模块的方法 今天在调试代码的时候,程序一直提示没有该模块,一直很纳闷,因为我导入文件一直是用绝对路径进行导入的.按道理来讲是不会出现模块找不到的情况的. 最后仔细分析了整个代码的目录结构,才发现了问题. 下面依次来说明一下今天的情况 先看导入的代码: 在demo--mnist.py文件中执行以下两种导入操作 # 第一处 from gcforest.gcforest import GCForest from gcforest.utils.co

随机推荐