对文件的读写操作
1、前言
读取文件是RPA引擎的一种基本操作,举例而言,我们通常会用配置文件作为RPA流程定义的初始化手段,在这种情况下,我们不仅要能够读取文件内容, 还要能够解析文件内容。花漾RPA为您提供了“读取文件”的流程节点,通过“读取文件”节点,不仅可以轻松的读取文件内容, 还能够方便的对配置文件进行解析,组装成变量,从而方便您在流程定义的编辑工作中引用这些变量。
在花漾中能够读取的文件来源可以是:本地文件、个人云盘、团队云盘、资源文件或者是某个Web链接,分别通过路径前缀 file://、user_disk://、 team_disk://、attachment://,以及 http(s):// 进行区分。
截止至7.6版本,花漾RPA能够解析的文件类型包括:文本文件、基于JSON格式的文件、基于键值对的配置文件Properties、YAML文件、CSV文件、Buffer对象等,以下分别展开介绍。
2、读取文本文件
假定我们在本地的 “D:\RPADemo\File” 文件夹中拥有一个文本文件 content.txt,该文本文件内包含有一段文本,如下图所示:
《本地文本文件示例》
我们可以在RPA流程定义中通过“读取文件”的流程节点,来读取上述文本文件。请将文件类型设置为“文本文件”,在这种文件类型下, 文件内容会被读取并保存至一个字符串变量。此处,我们声明一个名称为{file_content} 的变量,将文本内容赋值给它:
《读取文件内容并将其保存至变量》
然后我们通过打印日志的流程节点来输出变量 {file_content} 的内容,可以看到,文本文件的内容已经被正确读取:
《通过打印日志输出文本文件的内容》
3、读取Properties文件
假定我们在团队云盘的“File”文件夹中拥有一个配置文件 config.ini,该配置文件内包含有两个配置参数,如下图所示:
《团队云盘中的配置文件示例》
这里需要提醒您的是,针对团队云盘,通过前缀 team_disk:// 加以区分,同时,我们强烈建议您文件路径之间尽量使用"/"作为分隔符, 即便在Windows下也是如此(花漾RPA引擎能够智能转换),这样能够在跨平台方面获得好处。
针对上述云盘文件,我们在RPA流程定义中通过“读取文件”的流程节点,来读取上述配置文件。需要注意的是,此处文件类型设置为“Properties文件”, 在这种文件类型下,花漾RPA引擎会将读取的内容组装成一个键值对的数据结构,并可以通过 key 键获得 value 值。 我们将将读取的内容保存至一个变量 {config}:
《读取配置文件内容并将其保存至变量》
然后通过打印日志的流程节点来输出变量 {config} 的内容,请注意,我们在此处可以通过 {config.keyword}来引用具体的值“shoes”, 同样道理,也可以通过 {config.count} 来引用具体的值“100”,如下图所示:
《通过打印日志输出配置文件的内容》
4、读取JSON文件
JSON 语法是 JavaScript 对象表示语法的子集,在 JSON 中,通过 "key": value 的方式来表示数据;不同的数据由半角逗号“,” 分隔; 用大括号 {} 保存对象;用中括号 [] 保存数组;使用斜杆 \ 来转义字符。
假定我们在本地的 “D:\RPADemo\File” 文件夹中拥有一个 JSON 文件 huayoung.json,其内容如下图所示:
《JSON 文件示例》
我们可以在RPA流程定义中通过“读取文件”的流程节点,来读取上述 JSON 文件。请将文件类型设置为“ JSON 文件”,在这种文件类型下, 文件内容会被读取并保存至一个 JavaScript 变量。此处,我们声明一个名称为{product} 的变量,将 JSON 文件内容赋值给它:
《读取 JSON 文件内容并将其保存至变量》
然后我们通过打印日志的流程节点来输出变量 {product} 的内容,关于如何引用此变量如下图所示:
《通过变量来引用 JSON 文件中的数据》
执行程序预览,可以看到,JSON 文件中的数据内容被正确的输出到控制台:
《正确输出 JSON 文件的数据》
5、读取YMAL文件
YAML是一种轻量级的数据序列化语言,它的设计目标是让人类可读、易于理解和编写。YAML 文件通常用于配置文件、数据交换格式和存储数据。YAML 文件采用缩进表示层次结构,使用冒号和空格表示键值对,使用横杠和空格表示列表,YAML 文件的扩展名通常为 .yaml 或 .yml。
假定我们在本地的 “D:\RPADemo\File” 文件夹中拥有一个 YAML 文件 config.yaml,其内容如下图所示:
《YAML 文件示例》
我们可以在RPA流程定义中通过“读取文件”的流程节点,来读取上述 YAML 文件。请将文件类型设置为“YAML文件”,在这种文件类型下, 文件内容会被读取并保存至一个 JavaScript 变量。此处,我们声明一个名称为 {config} 的变量,将 YAML 文件内容赋值给它:
《读取 YAML 文件内容并将其保存至变量》
然后我们通过打印日志的流程节点来输出变量 {config} 的内容,并执行程序预览:
《读取 YAML 文件内容并输出内容》
6、读取CSV文件
CSV是一种通用的、相对简单的文件格式。通常 CSV 文件开头是不留空的,以行为单位,每行中记录一张图片的多项数据,每项数据用半角逗号(英文逗号)来分隔。
假定我们在本地的 “D:\RPADemo\File” 文件夹中拥有一个 CSV 文件 ”购物.csv“,其内容如下图所示:
《CSV 文件示例》
我们可以在RPA流程定义中通过“读取文件”的流程节点,来读取上述 CSV 文件。请将文件类型设置为“CSV文件”,在这种文件类型下,文件内容会被读取并保存至一个 JavaScript 变量。此处,我们声明一个名称为 {product} 的变量,将 CSV 文件内容赋值给它:
《读取 CSV 文件内容并将其保存至变量》
然后我们通过打印日志的流程节点来输出变量 {product} 的内容,关于如何引用此变量如下图所示,需要注意的是,此时打印需要点亮表达式模式:
《通过变量来引用CSV文件中的数据》
执行程序预览,可以看到,JSON 文件中的数据内容以及变量 {product} 被正确的输出到控制台:
《正确输出CSV 文件的数据》
7、读取buffer对象
Buffer对象是Node处理二进制数据的一个接口,类似于一个数组,它的元素为16进制的两位数,即0-255的数值。 假定我们在本地的 “D:\RPADemo\File” 文件夹中拥有一个 PNG图片,下面将为您展示如何将一张图片通过buffer对象转成base64编码格式:
《读取 PNG 图片存储至变量》
通过打印日志的流程节点来输出变量 {picture} 转换成base64编码格式的内容,关于如何引用此变量如下图所示,需要注意的是,此时打印需要点亮表达式模式:
《引用变量并转化为base64》
8、写入文件
您可以通过 “写入文件” 节点,将流程中的变量值或者文本内容写入到指定的文件中,需要注意的是, “写入文件” 目前只支持写入文本文件及二进制文件。 下面为您演示获取淘宝商品的标题并写入到文件当中,假定我们在本地的 “D:\RPADemo\SetFile” 文件夹中有一个文本文件 “商品标题.txt”。
《准备一个文本文件》
使用循环遍历容器元素节点获取商品元素,每次循环的循环项我们赋值给变量{loop_item},每次循环的计数我们赋值给变量{loop_index}:
《获取商品元素》
从循环体容器中提取标题元素并赋值到变量{title}上:
《获取标题元素》
通过打印日志的流程节点来输出变量 {title},并写入到文本文件 “商品标题.txt” 中:
《写入文件》
《输出打印日志》
《成功写入文件》