Python实现Web UI自动化测试实战:Selenium 3/4+unittest/Pytest+GitLab+Jenkins
上QQ阅读APP看书,第一时间看更新

3.5 Python中的os模块

os(operation system,操作系统)是Python标准库中的内置模块之一,用于实现访问操作系统等相关功能。在Web UI自动化测试过程中,我们会遇到访问某个文件的场景,但是不同操作系统的文件路径分隔符不同,如果想使自己编写的代码更加健壮,就需要使用os模块中提供的方法,这样就可以实现跨平台访问。

(1)获取操作系统信息

●os.sep:用来获取系统路径的分隔符。Windows系统路径的分隔符是“\\”,Linux和macOS系统路径的分隔符是“/”。

●os.name:显示使用的工作平台。Windows平台返回“nt”,Linux和macOS返回“posix”。

●os.getcwd:用于获取当前文件的目录。

示例代码:test3_17.py。

import os
print(os.sep)                      # 当前系统路径的分隔符
print(os.name)                     # 工作平台
print(os.getcwd())                 # 获取当前文件的目录

运行结果如图3-2所示。

假如我们需要拼接一个文件目录,示例代码:test3_18.py。

import os
# 假如想拼接一个当前文件同级目录里面的aa.py文件
cur_path = os.getcwd()             # 获取当前目录
print(cur_path)
file = cur_path + os.sep + 'aa.py' # 通过sep来获取适合当前操作系统的分隔符
print(file)

运行结果如下。

D:\Love\Chapter_3
D:\Love\Chapter_3\aa.py

图3-2 获取操作系统信息

(2)目录操作

接下来,我们看一下Python os模块提供了哪些用于对文件目录操作的方法(示例代码:test3_19.py)。

os.listdir(目录):返回指定目录下的所有文件和目录名。

os.mkdir('D:\\abc'):创建一个目录。

os.rmdir('D:\\abc'):删除一个空目录。若目录中有文件,则无法删除。

os.makedirs('D:\\abc\\def\\'):可以创建多层递归目录。如果目录全部存在,则创建目录失败。

os.removedirs('D:\\abc\\def\\'):可以删除多层递归的空目录。若目录中有文件,则无法删除。

os.chdir('D:\\abc\\def\\'):改变当前目录到指定目录中去。

os.rename('D:\\abc\\def', 'D:\\abc\\xyz'):重命名目录或文件。命名后的文件名如果存在,则重命名失败。

os.path.basename('D:\\abc\\def\\a.txt'):返回文件名。

os.path.dirname('D:\\abc\\def\\a.txt'):返回文件目录。

os.path.getsize(name):获取文件大小。

os.path.abspath(name):获取绝对路径。

os.path.join(path,name):连接目录与文件名或连接目录与目录。

(3)判断操作

os.path.exists(path):判断文件或者目录是否存在;存在则返回True,否则返回False。

os.path.isfile(path):判断是否为文件;是文件则返回True,否则返回False。

os.path.isdir(path):判断是否为目录。

示例代码如下。

>>> import os
>>> os.path.exists('d:\\aaa\\')
False