Python-如何操作文件路径
1、分割路径为头尾:os.path.split(p)
1)将路径名p 拆分为头,尾两个字符串,分界线是最右边的一个斜线,以元组类型返回(head,tail)。tail是最后一个组件的名称,剩下的是head。
2)尾部分不包含斜线;如果路径以斜线结尾,则tail是空字符串。
3)如果路径中没有斜线,则头部将为空。
4)如果路径是空的,那么头部和尾部都是空的。
例如:
p1=r'F:\zzTest\test\a001.txt'
p2=r'C:\Users\Administrator\Pictures'
print(os.path.split(p1))
>>>('F:\\zzTest\\test', 'a001.txt')
print(os.path.split(p2))
>>>('C:\\Users\\Administrator', 'Pictures')

2、获取路径基层的名字:os.path.basename(p)
返回路径p的最后一个组件名称。是os.path.split()的尾。
例如:
p1=r'F:\zzTest\test\a001.txt'
p2=r'C:\Users\Administrator\Pictures
print(os.path.basename(p1))
>>> a001.txt
print(os.path.basename(p2))
>>> Pictures

3、获取路径的目录路径:os.path.dirname(p)
返回路径p的目录路径。也就是os.path.split()的头。
例如:
p1=r'F:\zzTest\test\a001.txt'
p2=r'C:\Users\Administrator\Pictures
print(os.path.dirname(p1))
>>>F:\zzTest\test
print(os.path.dirname(p2))
>>>C:\Users\Administrator

4、分割驱动盘符:os.path.splitdrive(p)
将路径p拆分为驱动盘和尾部组件(drive,tail)以元组返回,
例如:
p1=r'F:\zzTest\test\a001.txt'
print(os.path.splitdrive(p1))
>>>('F:', '\\zzTest\\test\\a001.txt')

5、分割扩展名:os.path.splitext(p)
1)将路径p拆分为文件名路径,和扩展名(root,ext)以元组返回,分割线是路径的最后一个斜杠后的最后一个句点。
2)ext包含一个句点,如果没有句点ext为空字符串。
例如:
p1=r'F:\zzTest\test\a001.txt'
p2=r'C:\Users\Administrator\Pictures'
print(os.path.splitext(p1))
>>>('F:\\zzTest\\test\\a001', '.txt')
print(os.path.splitext(p2))
>>>('C:\\Users\\Administrator\\Pictures', '')

6、连接路径:os.path.join(p,p1,p2....)
1)连接一个或多个路径组件。返回值是p和后面的多个字符串串联,
2)每个非空的参数后面默认有一个目录分隔符"\"(os.sep),最后一个除外。
3)这如果最后一个部分为空,结果将仅以分隔符结尾。
4)如果某参数是绝对路径,则会丢弃所有以前参数,并从绝对路径参数继续连接。
例如:
p0=r'aa'
p1=r'F:\zzTest'
p2=r'bb'
p3=r''
p4=r'cc.txt'
print(os.path.join(p0,p1,p2,p3))
p1为绝对路径,所以前面的p0被舍弃,p3是空,且在最后,所以以"\"结尾。
>>>F:\zzTest\bb\
print(os.path.join(p0,p1,p2,p3,p4))
>>>F:\zzTest\bb\cc.txt
p3是空,不在结尾,不显示任何效果。

1、获取路径的创建时间:os.path.getctime(p)
获取路径的修改时间:os.path.getmtime(p)
获取路径的访问时间:os.path.getatime(p)
返回的时间是time模块的时间戳,想要看到可读的时间需要转换。

2、获取文件的大小:os.path.getsize(p)
返回路径的大小,单位是byte。
例如:
p=r'C:\Users\Administrator\Pictures\49\1.jpg'
print(f'size:{(os.path.getsize(p)/1024):.1f}KB')
>>>size:66.1KB

3、路径判断操作
判断路径是否存在:os.path.exists(p)
路径存在则返回True,路径损坏返回False
--------------------
判断是否为绝对路径:os.path.isabs(path)
如果是返回True,否则返回False
--------------------
判断路径是否为目录os.path.isdir(path)
如果是返回True,否则返回False
--------------------
判断路径是否为文件os.path.isfile(path)
如果是返回True,否则返回False

4、删除文件:os.unlink(p)
参数p是文件路径,非目录路径,否则报错。
没有返回值。
p=r"F:\zzTest\test\a001.txt"
print(os.path.exists(p))
>>>True
os.unlink(p)
print(os.path.exists(p))
>>>False
