1 os.path 模块罕用的属性和办法

<caption> os.path 模块罕用的属性和办法 </caption>
办法阐明
os.path.abspath(path)返回 path 的绝对路径。
os.path.basename(path)获取 path 门路的根本名称,即 path 开端到最初一个斜杠的地位之间的字符串。
os.path.commonprefix(list)返回 list(多个门路)中,所有 path 共有的最长的门路。
os.path.dirname(path)返回 path 门路中的目录局部。
os.path.exists(path)判断 path 对应的文件是否存在,如果存在,返回 True;反之,返回 False。和 lexists() 的区别在于,exists()会主动判断生效的文件链接(相似 Windows 零碎中文件的快捷方式),而 lexists() 却不会。
os.path.lexists(path)判断门路是否存在,如果存在,则返回 True;反之,返回 False。
os.path.expanduser(path)把 path 中蕴含的 "~" 和 "~user" 转换成用户目录。
os.path.expandvars(path)依据环境变量的值替换 path 中蕴含的 "$name" 和 "${name}"。
os.path.getatime(path)返回 path 所指文件的最近拜访工夫(浮点型秒数)。
os.path.getmtime(path)返回文件的最近批改工夫(单位为秒)。
os.path.getctime(path)返回文件的创立工夫(单位为秒,自 1970 年 1 月 1 日起(又称 Unix 工夫))。
os.path.getsize(path)返回文件大小,如果文件不存在就返回谬误。
os.path.isabs(path)判断是否为绝对路径。
os.path.isfile(path)判断门路是否为文件。
os.path.isdir(path)判断门路是否为目录。
os.path.islink(path)判断门路是否为链接文件(相似 Windows 零碎中的快捷方式)。
os.path.ismount(path)判断门路是否为挂载点。
os.path.join(path1[, path2[, ...]])把目录和文件名合成一个门路。
os.path.normcase(path)转换 path 的大小写和斜杠。
os.path.normpath(path)标准 path 字符串模式。
os.path.realpath(path)返回 path 的实在门路。
os.path.relpath(path[, start])从 start 开始计算相对路径。
os.path.samefile(path1, path2)判断目录或文件是否雷同。
os.path.sameopenfile(fp1, fp2)判断 fp1 和 fp2 是否指向同一文件。
os.path.samestat(stat1, stat2)判断 stat1 和 stat2 是否指向同一个文件。
os.path.split(path)把门路宰割成 dirname 和 basename,返回一个元组。
os.path.splitdrive(path)个别用在 windows 下,返回驱动器名和门路组成的元组。
os.path.splitext(path)宰割门路,返回路径名和文件扩展名的元组。
os.path.splitunc(path)把门路宰割为加载点与文件。
os.path.walk(path, visit, arg)遍历path,进入每个目录都调用 visit 函数,visit 函数必须有 3 个参数(arg, dirname, names),dirname 示意当前目录的目录名,names 代表当前目录下的所有文件名,args 则为 walk 的第三个参数。
os.path.supports_unicode_filenames设置是否能够将任意 Unicode 字符串用作文件名。

2 简略示例

  • 在一个工程或者我的项目中用到的会多一点,比方须要失去某个文件或者配置文件的门路等。
  • 这里示例为:C:\Users\Administrator\Desktop\test_os_path.py
# -*- coding:utf-8 -*-# 作者:NoamaNelson# 日期:2021/7/10 18:23# 文件名称:test_os_path.py# 作用:os.path应用import osclass StudyOS:    def os_path(self):        os_path = os.path.abspath(__file__)        print(f"1、以后执行文件的门路为:{os_path}")    def os_path_d(self):        os_path = os.path.dirname(os.path.abspath(__file__))        print(f"2、以后执行文件的目录门路为:{os_path}")    def os_path_dd(self):        os_path = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))        print(f"3、以后执行文件的目录门路的目录门路为:{os_path}")    def os_path_b(self):        os_path = os.path.basename(__file__)        print(f"4、以后执行文件的名称为:{os_path}")    def os_path_e(self):        os_path = os.path.exists(__file__)        print(f"5、以后执行文件是否存在:{os_path}")    if __name__ == "__main__":    mpath = StudyOS()    mpath.os_path()    mpath.os_path_d()    mpath.os_path_dd()    mpath.os_path_b()    mpath.os_path_e()

输入为:

========== RESTART: C:/Users/Administrator/Desktop/test_os_path.py ==========1、以后执行文件的门路为:C:\Users\Administrator\Desktop\test_os_path.py2、以后执行文件的目录门路为:C:\Users\Administrator\Desktop3、以后执行文件的目录门路的目录门路为:C:\Users\Administrator4、以后执行文件的名称为:test_os_path.py5、以后执行文件是否存在:True

3 我的项目中扩大

  • 比方咱们有这么一个我的项目构造;

  • config.py中是咱们的配置信息;
  • 该工程的绝对路径为:F:\Automated-InterfaceTest-Pytest-demo
  • 我的项目根目录获取:
# -*- coding:utf-8 -*-# 作者:NoamaNelson# 日期:2021/7/10 18:10# 文件名称:config.py# 作用:配置文件# =================== 我的项目根目录 ===================BASE_PATH = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))BASE_PATH1 = os.path.dirname(os.path.abspath(__file__))BASE_PATH2 = os.path.abspath(__file__)print(f"我的项目根目录门路为:{BASE_PATH}")print(f"以后执行脚本的目录门路为:{BASE_PATH1}")print(f"以后执行脚本的门路为:{BASE_PATH2}")

输入为:

我的项目根目录门路为:F:\Automated-InterfaceTest-Pytest-demo以后执行脚本的目录门路为:F:\Automated-InterfaceTest-Pytest-demo\config以后执行脚本的门路为:F:\Automated-InterfaceTest-Pytest-demo\config\config.py
  • 接口文档.xls的门路
EXCEL_FILE = os.path.join(BASE_PATH, "excel", "接口文档.xls")  # 接口文档的目录print(f"接口文档的门路:{EXCEL_FILE}")

输入为:

接口文档的门路:F:\Automated-InterfaceTest-Pytest-demo\excel\接口文档.xls