验证码: 看不清楚,换一张 查询 注册会员,免验证
  • {{ basic.site_slogan }}
  • 打开微信扫一扫,
    您还可以在这里找到我们哟

    关注我们

python中的路径拼接问题怎么解决

阅读:747 来源:乙速云 作者:代码code

python中的路径拼接问题怎么解决

      python路径拼接

      使用:

      • os.path.join()函数:连接两个或更多的路径名组件

      • 如果有一个组件是一个绝对路径,则在它之前的所有组件均会被舍弃

      • 如果最后一个组件为空,则生成的路径以一个 分隔符结尾

      def test2():
          s1, s2, s3 = 'home', 'courses', 'test'
          res = os.path.join(s1, s2, s3)
          print(res)  # homecoursestest
          s2 = '/courses'
          res = os.path.join(s1, s2, s3)
          print(res)  # /coursestest
          s1, s2, s3 = 'home', 'courses', 'test'
          res = os.path.join(s1, s2, s3)
          print(res)  # homecoursestest
          s1, s2, s3 = 'home', 'courses', ''
          res = os.path.join(s1, s2, s3)
          print(res)  #homecourses

      homecoursestest
      /coursestest
      homecoursestest
      homecourses

      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)

      得到的是如下结果:

      python中的路径拼接问题怎么解决

      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: aaaabbbbccccc.txt
      0: bbbbccccc.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: aaaaxxxxxx./bbbccccc.txt
      1: ./aaaaxxxxxx./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: /bbbccccc.txt
      2: c:/bbbccccc.txt
      2: c:/bbbccccc.txt
      3: c:bbbccccc.txt
      3: c:/bbbccccc.txt
    分享到:
    *特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: hlamps#outlook.com (#换成@)。
    相关文章
    {{ v.title }}
    {{ v.description||(cleanHtml(v.content)).substr(0,100)+'···' }}
    你可能感兴趣
    推荐阅读 更多>