(1)os.path.realpath(file)的作用
在Python中,os.path.realpath(file) 是一种常用的技巧,用于获取当前执行文件的绝对路径。
file 是一个特殊的内置变量,它表示当前执行文件的名称,包括文件路径。
os.path.realpath 函数则用于解析这个路径,返回它的真实路径,即去除任何符号链接的路径。
这里是一个简单的例子:
import os
# 获取当前文件的绝对路径
real_path = os.path.realpath(__file__)
print(real_path)
# 假设脚本位于 /home/user/projects/my_script.py
# -> 输出结果
/home/user/projects/my_script.py
需要注意的是,这个技巧在有些情况下可能不适用,比如:
当脚本以交互方式运行时(如在Python shell中粘贴代码),file 可能不存在。
如果脚本被当作模块导入到另一个脚本中,file 将指向导入的脚本,而不是运行的脚本。
(2)os.path.dirname 的作用
在Python中,os.path.dirname 是 os.path 模块的一个函数,它用于获取一个路径字符串中的目录名称部分。具体来说,它会返回路径中的最后一个分隔符(如/或\)之前的内容,不包括文件名。
os.path.dirname(path) 接受一个字符串参数 path,path表示一个文件路径。
举个例子:
import os
path = "/home/user/documents/file.txt"
dirname = os.path.dirname(path)
print(dirname) # 输出: /home/user/documents
在这个示例中,path 是一个文件路径,os.path.dirname(path) 返回该路径的目录部分 “/home/user/documents”。
os.path.dirname 在处理文件路径时非常有用,可以使用它来提取文件所在的目录,进而进行目录操作、文件操作或其他相关操作。
(3)os.path.join的作用
在Python中,os.path.join 是一个非常实用的函数,用于将多个路径组件合并为一个完整的路径字符串。这个函数会智能地处理目录分隔符(如 Unix 系统中的 ‘/’ 和 Windows 系统中的 ‘’),确保返回的路径在当前操作系统中是有效的。
函数的基本用法如下:
import os
path1 = "part1"
path2 = "part2"
path3 = "part3"
result = os.path.join(path1, path2, path3)
print(result)
# 在Unix系统中, result = "part1/part2/part3"
# 在Windows系统中, result = "part1\part2\part3"
意义:
使用 os.path.join 是创建路径的推荐方式,因为它可以确保跨平台兼容性,避免直接拼接字符串可能引入的错误。
(3)os.path.realpath、os.path.dirname,os.path.join组合运用
举例:
import os
# 写法一:
# 获取当前文件的绝对路径
real_path = os.path.realpath(__file__)
# 获取当前文件所在的目录路径
SCRIPT_DIR = os.path.dirname(real_path)
# 写法二:
# SCRIPT_DIR = os.path.dirname(os.path.realpath(__file__))
print("脚本目录:", SCRIPT_DIR)
WASHING_MACHINE_KCD_PATH = os.path.join(SCRIPT_DIR, 'system.kcd')
print('KCD路径:'WASHING_MACHINE_KCD_PATH)
输出:
# 如果脚本位于 E:\home\user\projects\my_script.py
# -> 输出结果
脚本目录:E:\home\user\projects
KCD路径:E:\home\user\projects\system.kcd
这行代码是用来确定当前脚本的目录路径的一种常见做法,搭建自动化测试框架非常有用。