Python开发之os.path的常用操作
Python的os模块(operating system)是提供给用户来与操作系统进行交互的内置库,可以用来进行文件和目录的管理操作。它提供了一系列函数,允许你创建、删除、重命名、遍历以及获取文件和目录的信息。本文我将为大家介绍这个内置库在路径管理中的一些常用基本操作。
路径管理 os.path
当我们使用os进行路径管理时,需要用到os.path这个类下的一些方法
1.相对路径转绝对路径
使用os.path.abspath()即可实现将相对路径转换为绝对路径
import os
os.path.abspath('情况表.xlsx')
结果:
2.获取路径中的最后一部分内容
使用os.path.basename()可以获取路径中的最后一部分内容,如果该路径指向的是一个文件,那么返回结果便是文件名,如果该路径指向一个目录,那么返回结果为目录名。
import os
os.path.basename(r'e:\\OneDrive\\Desktop\\帮忙\\毕业设计.docx')
结果:
这里需要注意的是,对于basename函数,只要传入的字符串是pathLike(带有\:等标识符)的,返回结果便是最后一部分,无论这个路径是否有效
3.找到多个字符串路径的最长公共路径(有效真实的路径)
使用os.path.commompath()函数即可实现上述功能,一般而言,我们可以用它来查找文件的根目录。
import os
paths=['/帮忙/毕业设计.docx','/帮忙/情况表.xlsx',
]
print(os.path.commonpath(paths))
结果:
这里需要注意的是commonpath函数传入的路径列表内的所有路径必须存在公共路径,也就是具有相同根目录,否则会报错。
4.找出多个字符串路径的最长公共前缀
使用os.path.commonprefix()可以实现该功能,不过需要注意的是该函数接受的参数是任意字符串,返回值也是字符串,因此使用该函数并不能一定获取到一个路径。
import os
paths=['Goodnight','Goodmorning','Goodafternoon'
]
print(os.path.commonprefix(paths))
结果:
5.判断路径是否真实存在
os.path.exists()是我们在进行路径处理时使用频率最高的一个函数,主要用来判断给定路径是否真实有效,返回值为True or False.
import os
print(os.path.exists(r'E:\OneDrive\Desktop\帮忙\毕业设计.docx'))
print(os.path.exists(r'E:\OneDrive\Desktop\帮忙\毕业设计'))
结果:
6.处理与用户主目录相关的路径扩展
os.expanduser()函数可以实现上述操作,当我们开发跨平台应用需要在用户主目录下配置文件时即可使用该函数。
import os
print(os.path.expanduser('~'))#输出:'/home/username'(Linux)或'C:\\Users\\username(Windows)
print(os.path.expanduser('~/Documents'))#输出:'/home/username/Documents'或'C:\\Users\\username\\Documents'
结果:
7.扩展路径中的环境变量
环境变量(Environment Variables)是操作系统中用来存储系统配置信息和用户设置的键值对(key-value pairs),可以被操作系统和应用程序访问使用。在windows系统中,可以运行:
"SystemPropertiesAdvanced.exe"打开系统属性面板后,点击环境变量来手动管理。
使用os.path.expandvars()可以将包含环境变量引用(如 $VAR
或 ${VAR}
格式)的路径字符串转换为包含实际变量值的完整路径。
import os
var=os.path.expandvars(r"%wechatpath%")
print(var)
结果:
7.获取给定路径下的文件创建时间
使用os.getctime()可以获取给定路径下的文件的创建时间,返回结果为从纪元(1970-01-01 00:00:00 UTC)到创建时间的秒数(浮点数)
import os
import time
print(os.path.getctime(r'E:\OneDrive\Desktop\帮忙\毕业设计.docx'))
print(time.ctime(os.path.getctime(r'E:\OneDrive\Desktop\帮忙\毕业设计.docx')))
特别地,如果我们想将返回值转换为可读的时间戳,可以使用time模块下的ctime
结果:
8.获取给定路径下的文件最后访问时间
使用os.getatime()可以获取给定路径下的文件的创建时间,返回结果为从纪元(1970-01-01 00:00:00 UTC)到创建时间的秒数(浮点数)
import os
import time
print(os.path.getatime(r'E:\OneDrive\Desktop\帮忙\毕业设计.docx'))
print(time.ctime(os.path.getatime(r'E:\OneDrive\Desktop\帮忙\毕业设计.docx')))
结果:
9.获取给定路径下的文件最后修改时间
import os
import time
print(os.path.getmtime(r'E:\OneDrive\Desktop\帮忙\毕业设计.docx'))
print(time.ctime(os.path.getmtime(r'E:\OneDrive\Desktop\帮忙\毕业设计.docx')))
结果:
10.获取给定路径下的文件大小
使用os.path.getsize()函数可以实现这一功能,返回值的结果为文件的字节数Byte,若需要转换为KB或MB或GB需要除1024.
import os
path=r'E:\OneDrive\Desktop\帮忙\毕业设计.docx'
print(f'{round(os.path.getsize(path))}B')
print(f'{round(os.path.getsize(path)/1024)}KB')
结果:
未完待续,,,,,,,