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