Python中os.path.join函数的用法示例详解

前言

        仅供个人学习用,如果对各位朋友有参考价值,给个赞或者收藏吧 ^_^

一、os.path.join函数

        os.path.join函数用于拼接多个路径字符串,生成一个新的路径字符串。

用法:os.path.join(path,*paths)

二、函数用法个人总结 

 1. 处理不同操作系统的路径分隔符。

 2. 从右往左看参数,如果一个参数<开头>无‘/’或者‘\’,则按照操作系统用分隔符,如果遇到,则左边参数均会被舍弃。

 3. 从右往左看参数,如果有一个参数是一个绝对路径,则在它左边的所有参数均会被舍弃。

 4. 如果最后一个参数为''空,则生成的路径以一个‘\’分隔符结尾(按照操作系统默认分隔符)

 5. 同时存在以‘./’与‘/’开始的参数,以‘/’为主,从最后一个以‘/’开头的参数开始拼接,之前的参数全部丢弃。

 6. 只存在以“. / ”开始的子路径,而不存在以“ / ”开头的子路径,则会将“. / ”里面的“ . ”当作子路径的一部分,进行拼接。

 三、函数的用法示例详解

本台电脑操作系统:Win10

1. 处理不同操作系统的路径分隔符。

 os.path.join函数能够根据操作系统自动选择适当的路径分隔符。例如Windows使用反斜杠\’,而Unix和Mac使用正斜杠/

本台电脑操作系统:Win10,所以只能展示基本用法

Demo1

import os

print(os.path.join('path', 'www', 'xxx', 'iii'))

# 输出:path\www\xxx\iii

2. 从右往左看参数,如果一个参数<开头>无正斜杠‘/’或者反斜杠‘\’,则按照操作系统用分隔符,如果遇到,则左边参数均会被舍弃。

Demo2

import os

print(os.path.join('path', 'www', 'xxx', 'iii'))  
# 输出:path\www\xxx\iii

print(os.path.join('path', 'www', 'xxx', '/iii'))  
# 输出:/iii

print(os.path.join('path', 'www', '/xxx', 'iii'))  
# 输出:/xxx\iii

print(os.path.join('path', '/www', 'xxx', 'iii'))
# 输出:/www\xxx\iii

print(os.path.join('path', '\www', 'xxx', 'iii'))
# 输出:\www\xxx\iii

print(os.path.join('p/a/t/h/', 'www/', 'x/x/x/', 'ii/i'))  # 如果使用都是‘/’,则要在参数末尾加上/,不然会根据操作系统变成\
# 输出:p/a/t/h/www/x/x/x/ii/i

3. 从右往左看参数,如果有一个参数是一个绝对路径,则在它左边的所有参数均会被舍弃。

Demo3

import os

print(os.path.join('path', 'www', 'xxx', 'iii'))
# 输出:path\www\xxx\iii

print(os.path.join('path', 'w:ww', 'xxx', 'iii'))
# 输出:w:ww\xxx\iii

print(os.path.join('path', 'w:\ww', 'x:xx', 'iii'))
# 输出:x:xx\iii

print(os.path.join('path', 'w:\ww', 'x:xx', '/iii'))
# 输出:x:/iii

print(os.path.join('path', 'w:\ww', 'xxx', '/iii'))
# 输出:w:/iii

print(os.path.join('path', 'w:\ww', 'xxx', 'iii.txt'))
# 输出:w:\ww\xxx\iii.txt

 4. 如果最后一个参数为''空,则生成的路径以一个‘\’分隔符结尾

 Demo4

import os

print(os.path.join('path', 'www', 'xxx', 'iii'))
# 输出:path\www\xxx\iii

print(os.path.join('path', 'www', 'xxx', 'iii', ''))
# 输出:path\www\xxx\iii\

 5. 同时存在以‘./’与‘/’开始的参数,以‘/’为主,从最后一个以‘/’开头的参数开始拼接,之前的参数全部丢弃。

Demo5

import os

print(os.path.join('path', 'www', 'xxx', 'iii'))
# 输出:path\www\xxx\iii

print(os.path.join('path', './www', '/xxx', 'iii'))
# 输出:/xxx\iii

print(os.path.join('path', './www', '/xxx/', 'iii'))
# 输出:/xxx/iii

print(os.path.join('path', 'www', '/xxx', './iii'))
# 输出:/xxx\./iii

print(os.path.join('path', 'www', '/xxx/', './iii'))
# 输出:/xxx/./iii

6. 只存在以“. / ”开始的子路径,而不存在以“ / ”开头的子路径,则会将“. / ”里面的“ . ”当作子路径的一部分,进行拼接。

Demo6

import os

print(os.path.join('path', 'www', 'xxx', 'iii'))
# 输出:path\www\xxx\iii

print(os.path.join('path', 'www', 'xxx', './iii'))
# 输出:path\www\xxx\./iii

print(os.path.join('path', 'www', './xxx', 'iii'))
# 输出:path\www\./xxx\iii

作者:阿鈞ajunwiwx

物联沃分享整理
物联沃-IOTWORD物联网 » Python中os.path.join函数的用法示例详解

发表回复