比OS模块更好用的pathlib


前言


  • 在自动化框架代码编写过程中,一定会操作我们系统目录
  • 相对于os模块的path方法,Python3 .4版本开始,建议使用标准库pathlib模块的Path,对路径的操作会更简单。

pathlib模块介绍

操作系统目录,比os模块更好用的模块:pathlib,自动化测试框架中它是这样使用的_pathlib

pathilib基本操作

#! /usr/bin/python3
# @Author : 无涯

from pathlib import Path

# E:\WuYa_Code\test_pathlib.py
file_path = Path(__file__)

print("------------pathlib基本组件------------")

print("文件路径:", file_path)
print("驱动盘drive: ", file_path.drive)
print("root: ", file_path.root)
print("锚点anchor:", file_path.anchor)
print("文件名name: ", file_path.name)
print("stem: ", file_path.stem)
print("文件后缀名: suffix: ", file_path.suffix)
print("suffixes: ", file_path.suffixes)

常用方法

file_path .iterdir()    #遍历目录的子目录和文件
file_path .is_dir() #判断是否是目录,返回布尔值
file_path .is_file() #判断是否是文件,返回布尔值
file_path .exists() #判断路径是否存在,返回布尔值
file_path .resolve() #返回绝对路径,WindowsPath
file_path .unlink() #删除目录或文件
file_path .glob() #条件遍历目录
file_path .rename() #重命名目录或文件夹

操作系统目录,比os模块更好用的模块:pathlib,自动化测试框架中它是这样使用的_pathlib_02

print("------------pathlib获取上层目 录------------")

print("返回当前文件父目录:", file_path.parent)
print("返回上一层目录:", file_path.parents[1])
print("分割路径,返回元组:", file_path.parts)

实战之测试框架目录结构

操作系统目录,比os模块更好用的模块:pathlib,自动化测试框架中它是这样使用的_os模块_03


  • base目录用于获取公用的目录地址,当前用于获取:E:\WuYa_Code
  • 再拼接data目录中的test.yaml文件。因为这个目录不止当前这一个文件

os模块

#! /usr/bin/python3
# @Author : 无涯

import os


class BasePath():

base = os.path.abspath(os.path.dirname(__file__)+ "\..")
# E:\WuYa_Code
print(base)

def yaml_path(self):
"""拼音data目录中的test.yaml文件,拼返回"""

yaml_path = os.path.join(BasePath.base + "\data" + r"\test.yaml")
# E:\WuYa_Code\data\test.yaml
print(yaml_path)
return yaml_path

pathlib模块

#! /usr/bin/python3
# @Author : 无涯

from pathlib import Path

class BasePath():

base = Path(__file__).parents[1]
# E:\WuYa_Code
print(base)

def yaml_path(self):
yaml_path = BasePath.base/"data"/"test.yaml"
# E:\WuYa_Code\data\test.yaml
print(yaml_path)
return yaml_path

对应关系表

操作系统目录,比os模块更好用的模块:pathlib,自动化测试框架中它是这样使用的_python_04

如果想学习软件测试,就快加入:893694563,群内学软件测试,分享技术和学习资料,陪你一起成长和学习。