如何在代码块中使用当前项目的目录?
场景
流程项目需要保存数据时,保存到【我的文档】、【桌面】等路径,当更换到其他电脑执行缺报错,因为文件路径不存在;同时如何避免正反斜杠在路径拼接产生的错误,以方便获取文件目录路径。
版本
22.2.1 实现
实现
1、项目中输出当前项目路径:self.path
输出示例:C:\Users\Admin\Documents\RPA\Project\NewProject1
2、将当前项目中的数据目录设置为变量,重复使用,例如 res 目录:os.path.join(self.path, 'res')
os.path.join可以接受多个参数,即路径一层层向里,如:a/b/c就是os.path.join('a', 'b', 'c')
3、不依赖self.path
来获取项目路径,比如发布为自定义组件后也行运行成功:
使用__file__
来获取当前py
文件所在目录,根据此来获取上一层或其他层路径;
假设发布自定义组件名称叫component1
,RPA 安装在C:\Program Files\ISRPA
;
那自定义组件发布后会存放在C:\Program Files\ISRPA\Python\Lib\ubpalib\component1
;
当前项目路径路径不可使用self.path
,而是:
# __file__的路径:.\component1\codes\Main.py
# 使用os.path.dirname获取上层目录路径,连续获取2次上层路径
# 即Main.py上层是codes文件夹,codes文件夹的上层是component1文件夹
project_path = os.path.dirname(os.path.dirname(__file__))
print(project_path)
# 输出:C:\Users\Admin\Documents\RPA\Project\component1
注意
常规 RPA 流程中,直接使用self.path
可能需要发布为自定义组件的使用os.path.dirname(os.path.dirname(__file__))
其他
关于 Python 自带的os.path
模块,可以参考这篇贴子的第16
条,链接:
【 RPA 流程制作中藏着哪些 Python 基础知识? 】
使用场景,链接:【 发布自定义组件后,组件获取图片在屏幕的位置中的图片丢失 】