- os.path.abspath(path):返回主目录+当前文件名
- os.path.basename(path):返回路径 path 的基本名称
- os.path.commonprefix(paths):返回所有路径的最长公共前缀(逐字符比较),要获取有效路径,参见commonpath()
- os.path.dirname(path):返回路径 path 的目录名称
- os.path.exists(path):检测文件或目录是否存在
- os.path.lexists(path):在缺失os.lstat()的平台上等同于exists()
- os.path.expanduser(path):展开~返回主目录
- os.path.expandvars(path):环境变量,不知道怎么用
- os.path.getatime(path):返回path的最后访问时间
- os.path.getmtime(path):返回 path 的最后修改时间
- os.path.getctime(path):文件创建时间
- os.path.getsize(path):文件大小
- os.path.isabs(path):检测是否为绝对路径
- os.path.isfile(path):检查是否为文件
- os.path.isdir(path):如果path路径真实存在,且为文件,返回true
- os.path.islink(path):现有目录条目是一个符号链接,则返回 True
- os.path.ismount(path):是否为挂载点
- os.path.join(path, *paths):连接两个或更多的路径名组件
- os.path.normcase(path):路径中的所有字符都转换为小写,并将正斜杠转换为反斜杠
- os.path.normpath(path):通过折叠多余的分隔符和对上级目录的引用来标准化路径名,在Windows上,本方法将正斜杠转换为反斜杠
- os.path.realpath(path, *, strict=False):返回指定文件的规范路径
- os.path.relpath(path, start=os.curdir):返回相对文件路径
- os.path.samefile(path1, path2):判断目录或文件是否相同
- os.path.sameopenfile(fp1, fp2):如果文件描述符 fp1 和 fp2 指向相同文件,则返回 True
- os.path.samestat(stat1, stat2):如果 stat 元组 stat1 和 stat2 指向相同文件,则返回 True
- os.path.split(path):以 "PATH" 中最后一个'/'作为分隔符,分隔后,将索引为0的视为目录(路径),将索引为1的视为文件名
- os.path.splitdrive(path):以路径第一个'/'为分隔,分隔驱动器名与路径。
- os.path.splitext(path):以文件名中的'.'作为分隔符,分隔文件名称与文件后缀,常用于输出指定目录下某一类型文件的文件名
- 返回路径 path 的绝对路径(标准化的)。在大多数平台上,这等同于用 normpath(join(os.getcwd(), path)) 的方式调用normpath()函数
- 其实就是返回主目录+当前文件名
- 返回路径 path 的基本名称
https://www.jianshu.com/p/61f4c0e4f789
import os
print(os.path.basename('c:/test.csv')) # test.csv
print(os.path.basename('c:/csv')) # csv
print(os.path.basename('c:/csv/')) # ''
os.path.commonprefix(paths):返回所有路径的最长公共前缀(逐字符比较),要获取有效路径,参见commonpath()
- 接受包含多个路径的列表,返回所有路径的最长公共前缀(逐字符比较)。如果列表为空,则返回空字符串 (‘’)
- 注解: 此函数是逐字符比较,因此可能返回无效路径。要获取有效路径,参见commonpath()。
import os print(os.path.commonprefix(['/usr/lib', '/usr/local/lib'])) # /usr/l print(os.path.commonpath(['/usr/lib', '/usr/local/lib'])) # usros.path.dirname(path):返回路径 path 的目录名称
- 返回路径 path 的目录名称
import os
print(os.path.dirname('E:/Read_File/read_yaml.py')) # E:/Read_File
print(os.path.dirname('E:/Read_File')) # E:/
os.path.exists(path):检测文件或目录是否存在
- 检测文件或目录是否存在
import os
print(os.path.exists('not.txt')) # False
print(os.path.exists('test.py')) # True
os.path.lexists(path):在缺失os.lstat()的平台上等同于exists()
- 如果path指向一个已存在的路径,返回 True。
- 对于失效的符号链接,也返回 True。
- 在缺失os.lstat()的平台上等同于exists()
- 展开~返回主目录
import os
print(os.path.expanduser('~/test'))
os.path.expandvars(path):环境变量,不知道怎么用
- 输入带有环境变量的路径作为参数,返回展开变量以后的路径。$name 或 ${name} 形式的子字符串被环境变量 name 的值替换。
- 格式错误的变量名称和对不存在变量的引用保持不变。
- 在 Windows 上,除了 $name 和 ${name} 外,还可以展开 %name%
- 返回path的最后访问时间
- 如果该文件不存在或不可访问,则抛出OSError 异常
import os
print(os.path.getatime('test.py')) # 返回时间戳
os.path.getmtime(path):返回 path 的最后修改时间
- 返回 path 的最后修改时间。
- 如果该文件不存在或不可访问,则抛出OSError 异常
import os
print(os.path.getmtime('test.py')) # 1650599204.9145854
os.path.getctime(path):文件创建时间
- 文件创建时间
- 如果该文件不存在或不可访问,则抛出OSError 异常
- 返回 path 的大小,以字节为单位。
- 如果该文件不存在或不可访问,则抛出OSError 异常
- 如果 path 是一个绝对路径,则返回 True。
- 在 Unix 上,它就是以斜杠开头,而在 Windows 上,它可以是去掉驱动器号后以斜杠(或反斜杠)开头
import os
print(os.path.isabs('test.py')) # false
print(os.path.isabs('C:/Users/lv/Desktop/test/test.py')) # true
os.path.isfile(path):检查是否为文件
- 检查是否为文件
import os
print(os.path.isfile('test.py')) # True
print(os.path.isfile('C:/Users/lv/Desktop/test')) # false
os.path.isdir(path):如果path路径真实存在,且为文件,返回true
- 如果path是现有的目录,则返回True
import os
print(os.path.isdir('test.py'))
print(os.path.isdir('C:/Users/lv/Desktop/test')) # 路径真实存在才会返回true
os.path.islink(path):现有目录条目是一个符号链接,则返回 True
- 如果 path 指向的现有目录条目是一个符号链接,则返回 True。
- 如果 Python 运行时不支持符号链接,则总是返回 False。
import os
print(os.path.islink('test.py')) # false
print(os.path.islink('C:/Users/lv/Desktop/test')) # False
os.path.ismount(path):是否为挂载点
- 如果路径 path 是 挂载点(文件系统中挂载其他文件系统的点),则返回 True。在 POSIX 上,该函数检查 path 的父目录 path/… 是否在与 path不同的设备上,或者 path/… 和 path 是否指向同一设备上的同一 inode(这一检测挂载点的方法适用于所有 Unix 和 POSIX变体)。本方法不能可靠地检测同一文件系统上的绑定挂载 (bind mount)。在 Windows 上,盘符和共享 UNC 始终是挂载点,对于任何其他路径,将调用GetVolumePathName 来查看它是否与输入的路径不同。
- 3.4 新版功能: 支持在 Windows 上检测非根挂载点
资料来源:https://blog.csdn.net/qq_30815237/article/details/87903364
- 连接两个或更多的路径名组件
- 1.如果各组件名首字母不包含’/’,则函数会自动加上
- 2.第一个以”/”开头的参数开始拼接,之前的参数全部丢弃,当有多个时,从最后一个开始
- 3.如果最后一个组件为空,则生成的路径以一个’/’分隔符结尾
- 建议使用os.sep.join
import os
print(os.path.join('/aaaa/', 'bbbb/', 'ccccc.txt')) # /aaaa/bbbb/ccccc.txt
print(os.path.join('/aaaa', 'bbbb/', 'ccccc.txt')) # /aaaabbbb/ccccc.txt
print(os.path.join('/aaaa/', 'bbbb/', '/ccccc.txt')) # /ccccc.txt
print(os.path.join('/aaaa/', '/bbbb', 'ccccc.txt')) # /bbbbccccc.txt
os.path.normcase(path):路径中的所有字符都转换为小写,并将正斜杠转换为反斜杠
- 规范路径的大小写。
- 在 Windows 上,将路径中的所有字符都转换为小写,并将正斜杠转换为反斜杠。
- 在其他操作系统上返回原路径
import os
print(os.path.normcase('C:/Users/lv/Desktop/test/test.py')) # c:userslvdesktoptesttest.py
os.path.normpath(path):通过折叠多余的分隔符和对上级目录的引用来标准化路径名,在Windows上,本方法将正斜杠转换为反斜杠
- 通过折叠多余的分隔符和对上级目录的引用来标准化路径名,所以 A//B、A/B/、A/./B 和A/foo/…/B 都会转换成 A/B。这个字符串操作可能会改变带有符号链接的路径的含义。
- 在Windows上,本方法将正斜杠转换为反斜杠。要规范大小写,请使用normcase()
import os
print(os.path.normpath('C:/Users/lv/Desktop/test/test.py')) # c:userslvdesktoptesttest.py
os.path.realpath(path, *, strict=False):返回指定文件的规范路径
- 返回指定文件的规范路径,消除路径中存在的任何符号链接
- abs就是快捷方式的路径,real就是快捷方式对应文件的路径,在def盘之类的
- 返回从当前目录或可选的 start 目录至 path 的相对文件路径。
- 这只是一个路径计算:不会访问文件系统来确认path或start是否存在或其性质。
- 在 Windows上,当 path 和 start 位于不同驱动器时将引发ValueError
import os
print(os.path.relpath('C:/Users/lv/Desktop/test/test.py')) # ......lvDesktoptesttest.py
print(os.path.relpath('C:/Users/lv/Desktop/test/test.py',
'/lv/Desktop/test/test.py')) # ........UserslvDesktoptesttest.py
print(os.path.relpath('C:/Users/lv/Desktop/test/test.py', '/lv/Desktop/')) # ....UserslvDesktoptesttest.py
print(os.path.relpath('C:/Users/lv/Desktop/test/test.py', '/Users/lv/Desktop')) # testtest.py
os.path.samefile(path1, path2):判断目录或文件是否相同
- 如果两个路径都指向相同的文件或目录,则返回 True。这由设备号和 inode 号确定,在任一路径上调用os.stat() 失败则抛出异常。
- 可用性: Unix, Windows。
- 如果文件描述符 fp1 和 fp2 指向相同文件,则返回 True。
- 可用性: Unix, Windows。
- 如果 stat 元组 stat1 和 stat2 指向相同文件,则返回 True。
- 这些 stat 元组可能是由os.fstat()、os.lstat() 或os.stat() 返回的
- 可用性: Unix, Windows。
- 以 “PATH” 中最后一个’/'作为分隔符,分隔后,将索引为0的视为目录(路径),将索引为1的视为文件名
import os
print(os.path.split('C:/Users/lv/Desktop/test/test.py')) # ('C:/Users/lv/Desktop/test', 'test.py')
os.path.splitdrive(path):以路径第一个’/'为分隔,分隔驱动器名与路径。
- 以路径第一个’/'为分隔,分隔驱动器名与路径。
import os
print(os.path.splitdrive('C:/Users/lv/Desktop/test/test.py')) # ('C:', '/Users/lv/Desktop/test/test.py')
os.path.splitext(path):以文件名中的’.'作为分隔符,分隔文件名称与文件后缀,常用于输出指定目录下某一类型文件的文件名
- 以文件名中的’.'作为分隔符,分隔文件名称与文件后缀,常用于输出指定目录下某一类型文件的文件名
import os
print(os.path.splitext('C:/Users/lv/Desktop/test/test.py')) # ('C:/Users/lv/Desktop/test/test', '.py')



