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