os 模块提供了非常丰富的方法用来处理文件和目录。
我们在做自动化测试过程中,代码中存在许多路径;如果把整个文件拷贝到其他位置,如何保证代码中的路径在其他同事的电脑上或者在不同的环境下都可以不用改变路径,动态获取目录路径;这样可以使提高代码的可维护性和拓展性;
比如:自动化项目的代码中我们可能需要:提取配置文件位置、提取 Excel测试用例数据位置、日志报告输入的文件位置、代码执行结果生成的HTML报告位置、入口文件自动识别接口测试类。。都需要获取动态目录或文件的路径;需要专门的文件来存储这些路径,只需要导入就可以获取相应的绝对路径;
1、怎样获取各文件或目录的绝对路径,我们在 test.py 文件内执行来练习
示例目录结构:
代码练习:
import os # 导入os模块 # 1、获取当前文件 test.py 的绝对路径 # 使用 os 模块当中的path 》abspath (译:abs怕死)的内置变量 __file__获取当前文件的绝对路径 path1 = os.path.abspath(__file__) print(path1) # 2、dirname (译:的内幕)可以获取当前路径上一级目录所在的绝对路径--B文件夹的绝对路径 path2 = os.path.dirname(path1) print(path2) # 3、dirname 可以获取当前路径上一级目录所在的绝对路径--A文件夹的绝对路径 path3 = os.path.dirname(path2) print(path3) # 综上先获取文件的绝对路径,再使用两层的 dirname 就可以获取到根目录的绝对路径 # 结合来写:获得根目录绝对路径 A_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) print(A_DIR) # 使用 join (译:找in)来拼接 根目录 + B 的绝对路径 B_DIR = os.path.join(A_DIR, "B") print(B_DIR) # 使用 join 来拼接 根目录 + C 的绝对路径 C_DIR = os.path.join(A_DIR, "C") print(C_DIR) # 使用 join 来拼接 C文件名 + aa.py 的绝对路径 aa_DIR = os.path.join(C_DIR, "aa.py") print(aa_DIR)
代码执行结果:
*******请大家尊重原创,如要转载,请注明出处:转载自:https://www.cnblogs.com/shouhu/ 谢谢!!*******