如何在代码块中使用当前项目的目录?

场景

流程项目需要保存数据时,保存到【我的文档】、【桌面】等路径,当更换到其他电脑执行缺报错,因为文件路径不存在;同时如何避免正反斜杠在路径拼接产生的错误,以方便获取文件目录路径。

版本

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 基础知识?

使用场景,链接:【 发布自定义组件后,组件获取图片在屏幕的位置中的图片丢失