os.path.abspath(path)
参数:
- path:要转换为绝对路径的路径字符串
返回值:
- 返回一个字符串,表示给定路径的绝对路径
关键点:
- 如果提供的路径已经是绝对路径,则返回的结果不变
os.path.basename(path)
参数:
- path: 需要获取文件名或文件夹名的路径字符串
返回值:
- 返回路径字符串中的最后一个部分,即文件名或目录名
关键点:
- 如果路径以斜杠结尾,返回值可能为空字符串
- 如果指定路径本身就是一个文件(夹)名而不是文件路径,os.path.basename() 函数将返回文件(夹)名本身
import os
path = 'C:\\Windows\\System32\\CatRoot'
print(os.path.basename(path))
#-> CatRoot
path = 'test.txt'
print(os.path.basename(path))
#-> test.txt
os.path.commonpath(paths)
参数:
- paths:一个包含多个路径的可迭代对象
返回值:
- 返回所有路径的共同前缀部分。如果没有共同路径,则返回空字符串
import os
paths = ['./Windows/User\\Downloads',
'./Windows/User/Documents',
'./Windows\\User\\Desktop']
print(os.path.commonpath(paths))
#-> Windows\User
os.path.commonprefix(list)
参数:
- list:一个包含多个字符串的列表
返回值:
- 返回一个字符串,表示所有字符串的共同前缀。如果没有共同前缀,则返回空字符串
关键点:
- 该函数是基于字符比较的,因此适用于任何字符串,而不仅限于文件路径
import os
list = ['./Home/User/Downloads',
'./Home/User/Documents',
'./Home/User/Desktop']
print(os.path.commonprefix(list))
#-> ./Home/User/D
os.path.dirname(path)
参数:
- path:要处理的路径字符串
返回值:
- 返回一个字符串,表示路径的目录部分。如果路径是根目录或没有目录部分,则返回空字符串
关键点:
- 如果路径以斜杠结尾,返回值可能为去掉结尾斜杠的路径字符串
import os
path = 'C:\\Windows\\User'
print(os.path.dirname(path))
#-> C:\Windows
path = 'C:\\Windows\\User\\'
print(os.path.dirname(path))
#-> C:\Windows\User
os.path.exists(path)
参数:
- path:需要检查的路径字符串,可以是文件或目录的路径
返回值:
- True:路径存在
- False:路径不存在
os.path.lexists(path)
参数:
- path:需要检查的路径字符串,可以是文件或目录的路径
返回值:
- True:路径存在
- False:路径不存在
关键点:
- os.path.lexists() 和 os.path.exists() 的主要区别在于,前者会检查符号链接本身的存在性,而后者会检查链接指向的目标
os.path.expanduser(path)
参数:
- 需要处理的路径字符串
返回值:
- 返回一个字符串,将参数中开头部分的 ~ 或 ~user 替换为当前用户的家目录并返回
关键点:
- 如果路径不是以 ~ 开头,返回值将与输入相同
import os
path = '~Ǣon\\Downloads'
print(os.path.expanduser(path))
#-> C:\Users\Ǣon\Downloads
os.path.expandvars(path)
参数:
- path:需要处理的路径字符串
返回值:
- 返回展开变量以后的路径。$name 或 ${name} 形式的子字符串被环境变量 name 的值替换
关键点:
- 在 Windows 上,除了 $name 和 ${name} 外,还可以展开 %name%
import os
path = '${windir}\\System32\\CatRoot'
print(os.path.expandvars(path))
#-> C:\Windows\System32\CatRoot
os.path.getatime(path)
参数:
- path:要查询的文件或目录的路径字符串
返回值:
- 返回一个浮点数,表示最后访问时间的时间戳(UTC 时间)
os.path.getmtime(path)
参数:
- path:要查询的文件或目录的路径字符串
返回值:
- 返回一个浮点数,表示最后修改时间的时间戳(UTC 时间)
os.path.getctime(path)
参数:
- path:要查询的文件或目录的路径字符串
返回值:
- 返回一个浮点数,表示创建时间的时间戳(UTC 时间)
关键点:
- 在某些操作系统上(如 Linux),返回的可能是文件的元数据更改时间,而不是实际的创建时间
os.path.getsize(path)
参数:
- path:要查询的文件或目录的路径字符串
返回值:
- 返回一个整数,表示文件的大小(字节)
os.path.isabs(path)
参数:
- path:要检查的路径字符串
返回值:
- True:路径是绝对路径
- False:路径不是绝对路径
os.path.isfile(path)
参数:
- path:要检查的路径字符串
返回值:
- True:路径存在并且是一个文件
- False:路径不存在或不是文件
os.path.isdir(path)
参数:
- path:要检查的路径字符串
返回值:
- True:路径存在并且是一个目录
- False:路径不存在或不是目录
os.path.islink(path)
参数:
- path: 要检查的路径字符串
返回值:
- True:路径存在并且是符号链接
- False:路径不存在或不是符号链接
关键点:
- 如果 Python 运行时不支持符号链接,则总是返回 False
os.path.ismount(path)
参数:
- path: 要检查的路径字符串
返回值:
- True:路径存在并且是一个挂载点
- False:路径不存在或不是一个挂载点
os.path.join(path, *paths)
参数:
- path:基础路径,可以是一个文件夹或文件名
- *paths:一个或多个要附加到基础路径的路径组件(子目录或文件名)
返回值:
- path 和所有 *paths 成员的拼接
关键点:
- 如果某个部分为绝对路径,则之前的所有部分会被忽略并从该绝对路径部分开始拼接
- 在 Windows,当遇到绝对路径部分时驱动器号将不会被重置。 如果某个部分位于不同驱动器或为绝对路径,则之前的所有部分会被忽略并且该驱动器号会被重置
import os
print(os.path.join('C:\\', 'User', 'Downloads\\demo.jpeg'))
#-> C:\User\Downloads\demo.jpeg
print(os.path.join('C:\\', 'User', 'D:\\Program Files (x86)', 'Tencent'))
#-> D:\Program Files (x86)\Tencent
print(os.path.join('/Desktop', '/Downloads', 'text.txt', 'demo.jpeg'))
#-> /Downloads\text.txt\demo.jpeg
print(os.path.join('C:\\', 'User' ,'\\Windows\\', 'Downloads'))
#-> C:\Windows\Downloads
os.path.normcase(path)
参数:
- path:要标准化的路径字符串
返回值:
- 在 Windows 上,将路径中的所有字符都转换为小写,并将正斜杠转换为反斜杠。在其他操作系统上返回原路径
import os
path = './Windows\\User/Downloads\\'
print(os.path.normcase(path))
#-> .\windows\user\downloads\
os.path.normpath(path)
参数:
- path:要规范化的路径字符串
返回值:
- 返回规范化后的路径。它会清理多余的斜杠,合并目录 (.) 和父目录 (
..) 的引用
import os
path = 'C:\\Windows/User\\Downloads//..//Downloads\\demo.jpeg'
print(os.path.normpath(path))
#-> C:\Windows\User\Downloads\demo.jpeg
path = './Windows//User\\Downloads//.//Files\\demo.jpeg'
print(os.path.normpath(path))
#-> Windows\User\Downloads\Files\demo.jpeg
os.path.relpath(path, start=os.curdir)
参数:
- path:表示要转换为相对路径的目标路径字符串
- start:表示起始路径,默认为当前工作目录
返回值:
- 返回一个字符串,表示从起始路径到目标路径的相对路径
import os
path = 'C:\\Windows\\User\\Downloads\\Files\\demo.jpeg'
start = 'C:\\Windows\\User\\Downloads'
print(os.path.relpath(path, start))
#-> Files\demo.jpeg
os.path.samefile(path1, path2)
参数:
- path1:第一个路径字符串
- path2:第二个路径字符串
返回值:
- True:如果 path1 和 path2 指向同一个文件或目录
- False:如果 path1 和 path2 不指向同一个文件或目录
关键点:
- 确保两个路径都存在,否则可能会抛出异常
import os
path1 = './Files\\../Files\\text.txt'
path2 = './Files\\text.txt'
print(os.path.samefile(path1, path2))
#-> True
os.path.sameopenfile(fp1, fp2)
参数:
- fp1:第一个文件对象
- fp2:第二个文件对象
返回值:
- True:如果 fp1 和 fp2 指向同一个文件
- False:如果 fp1 和 fp2 不指向同一个文件
import os
fp1 = open('./text.txt', 'r')
fp2 = open('./text.txt', 'r')
print(os.path.sameopenfile(fp1.fileno(), fp2.fileno()))
#-> True
os.path.samestat(stat1, stat2)
参数:
- stat1:第一个 os.stat_result 对象
- stat2:第二个 os.stat_result 对象
返回值:
- True:如果两个状态对象指向同一个文件
- False:如果两个状态对象不指向同一个文件
import os
stat1 = os.stat('./text.txt')
stat2 = os.stat('./text.txt')
print(os.path.samestat(stat1, stat2))
#-> True
os.path.split(path)
参数:
- path:要分割的路径字符串
返回值:
- 返回一个元组 (directory, filename)
- directory:路径的目录部分
- filename:路径的文件名部分(包括扩展名)
import os
path = './User\\Downloads\\Files\\demo.jpeg'
print(os.path.split(path))
#-> ('./User\\Downloads\\Files', 'demo.jpeg')
os.path.splitdrive(path)
参数:
- path:要分割的路径字符串
返回值:
- 返回一个元组 (drive, tail)
- drive:挂载点或空字符串
- tail:剩余的路径部分
关键点:
- 在所有情况下,drive + tail 都与 path 相同
import os
path = 'D:\\Program Files (x86)\\Tencent'
print(os.path.splitdrive(path))
#-> ('D:', '\\Program Files (x86)\\Tencent')
os.path.splitroot(path)
参数:
- path:要分割的路径字符串
返回值:
- 返回一个元组 (drive, root, tail)
- drive:设置名或挂载点
- root:drive 之后的分隔符的字符串
- tail:root 之后的所有内容
import os
path = 'D:\\Program Files (x86)\\Tencent'
print(os.path.splitroot(path))
#-> ('D:', '\\', 'Program Files (x86)\\Tencent')
os.path.splitext(path)
参数:
- path:要分割的文件路径字符串
返回值:
- 返回一个元组 (root, ext)
- root:文件名部分,不包括扩展名
- ext:文件的扩展名(包括前导点
.)
关键点:
- 如果路径没有扩展名,返回的扩展名部分将是空字符串
import os
path = './User\\Downloads\\Files\\demo.jpeg'
print(os.path.splitext(path))
#-> ('./User\\Downloads\\Files\\demo', '.jpeg')
os.path.supports_unicode_filenames
返回值:
- True:表示支持 Unicode 文件名
- False:表示不支持 Unicode 文件名
import os
print(os.path.supports_unicode_filenames)
#-> True

1480

被折叠的 条评论
为什么被折叠?



