1. os.path模块
- 独立于os模块
1.1 basename(path)
去掉目录路径,单独返回文件名
import os.path
os.path.basename (r'E:\Python\WorkSpace\Demo\aa.txt')
输出:'aa.txt'
1.2 dirname(path)
去掉文件名,返回路径
os.path.dirname (r'E:\Python\WorkSpace\Demo\aa.txt')
输出:'E:\\Python\\WorkSpace\\Demo'
1.3 join(A,B,C,[...])
将A、B、C各部分组合成一个路径
D:\\
D盘的写法,得自己加\\
os.path.join('A','B','C','D')
输出:'A\\B\\C\\D'
# D:\\
print(os.path.join('D:\\','python','demo','random'))
输出:D:\python\demo\random
1.4 split(path)
分割文件名和路径
path格式不同,返回的参数不同
- 路径+文件名 —>(路径名,文件名)
- 纯路径------------>(路径名-1,最后一个目录名)-默认把最后一个目录当成文件处理
- 不会判读目录或者文件是否存在
- 结果以元组方式返回
# 路径+文件名
os.path.split (r'E:\Python\WorkSpace\Demo\aa.txt')
输出:('E:\\Python\\WorkSpace\\Demo', 'aa.txt')
# 纯路径
os.path.split (r'E:\Python\WorkSpace\Demo')
输出:('E:\\Python\\WorkSpace', 'Demo')
1.5 splittext(textname)
分离文件名和拓展名
- textname:仅仅传入文件名
- 结果以元组返回
os.path.splitext ('aa.txt')
输出:('aa', '.txt')
1.6 getsize(path)
返回指定文件大小,单位是字节
- 如果不用绝对路径,默认为当前工作路径
- 我的aa.txt文件在当前工作目录的Demo目录里
# 绝对路径
os.path.getsize (r'E:\Python\WorkSpace\Demo\aa.txt')
52
#
os.path.getsize (r'demo/aa.txt')
输出:52
1.7 gettime(path)
,getctime(path)
,getmtime(path)
文件的三个时间
- 结果默认浮点型秒数,可用time模块的gmtime()或localtime()函数转换
- 如果不用绝对路径,默认为当前工作路径
- 我的aa.txt文件在当前工作目录的Demo目录里
- gettime(path):文件的最近访问时间
- getctime(path):文件的创建时间
- getmtime(path):文件的最新修改时间
# getatime(path)
os.path.getatime (r'E:\Python\WorkSpace\Demo\aa.txt')
输出:1611934639.5758266
# getctime(path)
os.path.getctime (r'E:\Python\WorkSpace\Demo\aa.txt')
输出:1611928942.939344
# getmtime(path)
os.path.getmtime (r'E:\Python\WorkSpace\Demo\aa.txt')
输出:1611934639.5758266
# 转换成人看得时间
import time
# localtime()
time.localtime(os.path.getmtime (r'E:\Python\WorkSpace\Demo\aa.txt'))
输出:time.struct_time(tm_year=2021, tm_mon=1, tm_mday=29, tm_hour=23, tm_min=37, tm_sec=19, tm_wday=4, tm_yday=29, tm_isdst=0)
# gmtime()
time.gmtime(os.path.getmtime (r'E:\Python\WorkSpace\Demo\aa.txt'))
输出:time.struct_time(tm_year=2021, tm_mon=1, tm_mday=29, tm_hour=15, tm_min=37, tm_sec=19, tm_wday=4, tm_yday=29, tm_isdst=0)
1.8 exists(path)
判断指定路径的目录/文件是否存在
- 返回值为boolean类型
- path写绝对路径
# 判断目录是否存在
os.path.exists(r'E:\Python\WorkSpace\Demo')
输出:True
# 判断文件是否存在
os.path.exists(r'E:\Python\WorkSpace\Demo\aa.txt')
输出:True
1.9 isabs(path)
判断指定路径是否是绝对路径
- 返回值为boolean类型
# 绝对路径
os.path.isabs (r'E:\Python\WorkSpace\Demo\aa.txt')
输出:True
# 相对路径
os.path.isabs (r'..\aa.txt')
输出:False
1.10 isdir(path)
判断指定路径是否存在且是一个目录
- 返回值为boolean类型
# 存在
os.path.isdir(r'E:\Python\WorkSpace\Demo')
输出:True
# 不存在
os.path.isdir(r'E:\Python\WorkSpace\Demo11')
输出:False
1.11 isfile(path)
判断指定路径是否存在且是一个文件
- 返回值为boolean类型
os.path.isfile(r'E:\Python\WorkSpace\Demo\aa.txt')
输出:True
1.12 islink(path)
判断指定路径是否存在且是一个链接
- 返回值为boolean类型
1.13 ismount(path)
判断指定路径是否存在且是一个挂载点
- 返回值为boolean类型
# 非挂载点
os.path.ismount(r'E:\Python')
输出:False
# 是挂载点:
os.path.ismount(r'E:')
输出:True
1.12 samefile(path1,path2)
判断两个路径是否指向同一个文件
- 返回值为boolean类型