更新时间:2025-09-22 21:27点击:72
os.path 模块是 Python 标准库中 os 模块的一部分,专门用于操作和处理文件路径。os.path 提供了一组强大的工具来对文件和目录路径进行各种操作,例如获取文件名、判断路径是否存在、路径拼接、路径规范化等。
os.path 模块在跨平台操作系统中表现良好,使得同一段代码能够在不同操作系统(如 Windows、Linux、macOS)上运行时处理路径相关问题。
以下是 os.path 模块的几种常用方法:
| 方法 | 描述 |
|---|---|
os.path.abspath(path) | 将相对路径转换为绝对路径。 |
os.path.basename(path) | 获取路径的最后一部分,即文件名。 |
os.path.dirname(path) | 获取路径中的目录部分。 |
os.path.join(*paths) | 拼接多个路径,自动处理路径分隔符。 |
os.path.split(path) | 将路径分割为目录和文件名的元组。 |
os.path.splitext(path) | 将路径分割为文件名和扩展名的元组。 |
| 方法 | 描述 |
|---|---|
os.path.exists(path) | 判断路径是否存在。 |
os.path.isfile(path) | 判断路径是否为文件。 |
os.path.isdir(path) | 判断路径是否为目录。 |
os.path.getsize(path) | 获取文件的大小,以字节为单位。 |
os.path.getatime(path) | 获取文件的最后访问时间。 |
os.path.getmtime(path) | 获取文件的最后修改时间。 |
os.path.getctime(path) | 获取文件的创建时间(在某些操作系统上表示最后状态更改时间)。 |
| 方法 | 描述 |
|---|---|
os.path.normpath(path) | 规范化路径,消除冗余的分隔符和相对路径标记。 |
os.path.realpath(path) | 获取文件的真实路径,解析符号链接。 |
os.path.relpath(path, start=os.curdir) | 计算相对路径,从 start 到 path。 |
| 方法 | 描述 |
|---|---|
os.path.commonpath(paths) | 返回路径序列中的共同路径。 |
os.path.commonprefix(list) | 返回路径序列中的最长公共前缀。 |
os.path.samefile(path1, path2) | 判断两个路径是否指向同一个文件。 |
os.path.sameopenfile(fp1, fp2) | 判断两个打开的文件对象是否指向同一个文件。 |
os.path.samestat(stat1, stat2) | 判断两个文件是否拥有相同的 stat 状态。 |
| 方法 | 描述 |
|---|---|
os.path.splitdrive(path) | 在 Windows 上,返回路径的驱动器/设备部分和路径部分的元组。 |
os.path.splitunc(path) | 分割路径中的共享设备和路径部分(Windows 特有)。 |
path="data.txt"
ff=os.path.abspath(path) #将相对路径转换为绝对路径。
print(ff) #D:\FPWEB\helloproj\test\data.txt
ff=os.path.basename(path) #获取路径的最后一部分,即文件名。
print(ff) # data.txt
ff=os.path.splitext(path) #将路径分割为文件名和扩展名的元组。
print(ff) #('data', '.txt')
以下实例演示了 os.path 相关方法的使用:
1
#!/usr/bin/env python
import os.path
# 当前文件名
print(__file__)
# 当前文件名的绝对路径
print( os.path.abspath(__file__) )
# 返回当前文件的路径
print(os.path.dirname( os.path.abspath(__file__) ))
以下实例输出文件的相关信息。
D:\FPWEB\helloproj\file2os.py
D:\FPWEB\helloproj\file2os.py
D:\FPWEB\helloproj
2
import os
print(os.path.basename('/root/runoob.txt')) # 返回文件名
print(os.path.dirname('/root/runoob.txt')) # 返回目录路径
print(os.path.split('/root/runoob.txt')) # 分割文件名与路径
print(os.path.join('root', 'test', 'runoob.txt')) # 将目录和文件名合成一个路径
执行以上程序输出结果为:
3
import os
import time
file = 'data.txt' # 文件路径
print(os.path.getatime(file)) # 输出最近访问时间
print(os.path.getctime(file)) # 输出文件创建时间
print(os.path.getmtime(file)) # 输出最近修改时间
print(time.gmtime(os.path.getmtime(file))) # 以struct_time形式输出最近修改时间
print(os.path.getsize(file)) # 输出文件大小(字节为单位)
print(os.path.abspath(file)) # 输出绝对路径
print(os.path.normpath(file)) # 规范path字符串形式
执行以上程序输出结果为:
0