load_working_file() 方法

工作数据区域加载工作文件,使该文件可用于 Python/HCL 脚本编写。加载的文件是副本,而不是原始文件。

语法

hcl.load_working_file(name = "工作文件名称")

参数

名称 描述
name = 工作文件名称

工作文件的名称。 该名称必须用引号引起来。

必须准确复制工作数据区域中的文件名,包括文件扩展名。文件和加载文件的脚本必须在同一个机器人中。

工作文件名称不区分大小写。要了解更多信息,请参阅文件名的大小写

说明

save_working_file() 方法 中的工作文件名称区分大小写。

返回

如果成功,则为返回码 202。 对于失败,返回一个错误消息。

示例

说明

您可以从 HighBond 或工作流机器人的工作数据区域加载支持的各种文件类型,并在 Python/HCL 脚本中使用文件。以下示例使用了 CSV 和 Excel 文件,因为二者是用于存储和传输数据的两种最常见的平面文件类型。

CSV 示例

从“工作数据”区域加载文件

您想对 2022 年第 1 季度的发票记录执行重复分析。这些记录包含在文件 Invoices_Q1_2022.csv 中,该文件之前上传到机器人的工作数据区域。在分析脚本中,必须先加载文件,然后才能对其执行任何分析。

hcl.load_working_file(name = "Invoices_Q1_2022.csv")

加载 CSV 工作文件并将其转换为数据帧

您想将加载的 CSV 工作文件转换为数据帧,以便使用 Python 或 HCL 以表格格式处理数据。

加载 CSV 文件并将其转换为 Pandas 数据帧

# 导入 Pandas 库 
import pandas as pd

# 从“工作数据”区域加载 CSV 文件
hcl.load_working_file(name = "Invoices_Q1_2022.csv") 

# 将 CSV 文件读取到 Pandas 数据帧中 
invoices_q1_2022_pd_df = pd.read_csv("Invoices_Q1_2022.csv") 

# 显示 Pandas 数据帧
invoices_q1_2022_pd_df

加载 CSV 文件并将其转换为 HCL 数据帧

# 从“工作数据”区域加载 CSV 文件
hcl.load_working_file(name = "Invoices_Q1_2022.csv")

# 将 CSV 文件读取到 HCL 数据帧中
invoices_q1_2022_hcl_df = hcl.read_csv("Invoices_Q1_2022.csv")

# 显示 HCL 数据帧
invoices_q1_2022_hcl_df

将 HCL 数据帧转换为 Pandas 数据帧

# 将 HCL 数据帧转换为 Pandas 数据帧中
invoices_q1_2022_pd_df = invoices_q1_2022_hcl_df.to_pandas()

# 显示 Pandas 数据帧
invoices_q1_2022_pd_df

加载压缩的 CSV 工作文件并将其转换为数据帧

使用 ACLScript EXPORT 命令,将本地 Analytics 表中的数据上传到 HighBond 或工作流机器人的工作数据区域中的压缩 CSV 文件 (*.csv.gz)。您希望加载压缩的 CSV 文件并将其转换为数据帧,以便使用 Python 或 HCL 以表格格式处理数据。

# 导入 Pandas 库 
import pandas as pd

# 从“工作数据”区域加载 CSV 压缩文件 (*.csv.gz) 
hcl.load_working_file(name = "Invoices_Q1_2022.csv.gz")

# 将 CSV 压缩文件读取到 Pandas 数据帧中
invoices_q1_2022_pd_df = pd.read_csv("Invoices_Q1_2022.csv.gz", compression="gzip", header=0)

# 显示 Pandas 数据帧
invoices_q1_2022_pd_df

Excel 示例

加载 Excel 工作文件并将其转换为数据帧

您想将加载的 Excel 工作文件转换为数据帧,以便使用 Python 或 HCL 以表格格式处理数据。

带有 *.xlsx 文件扩展名的 Excel 文件

以下示例显示如何将加载的 Excel 文件转换为 Pandas 数据帧。 如果需要,可以将 Pandas 数据帧转换为 HCL 数据帧,如上例所示。

# 导入 Pandas 库 
import pandas as pd

# 从“工作数据”区域加载 Excel 文件 (*.xlsx)
hcl.load_working_file(name = "Invoices_Q1_2022.xlsx") 

# 将 Excel 文件读取到 Pandas 数据帧中 
invoices_q1_2022_pd_df = pd.read_excel("Invoices_Q1_2022.xlsx") 

# 显示 Pandas 数据帧
invoices_q1_2022_pd_df

带有 *.xls 文件扩展名的 Excel 文件

要转换使用旧的 *.xls 格式的 Excel 文件,必须首先安装 xlrd Python 库。

说明

与 Jupyter Notebook 应用程序类似,必须在单独的脚本编辑器单元中执行 Python 包安装 ( pip install )。

HighBond 机器人支持安装外部 Python 包,但工作流机器人不支持。

pip install xlrd
# 导入 Pandas 库 
import pandas as pd

# 从“工作数据”区域加载 Excel 文件 (*.xls)
hcl.load_working_file(name = "Invoices_Q1_2022.xls") 

# 将 Excel 文件读取到 Pandas 数据帧中 
invoices_q1_2022_pd_df = pd.read_excel("Invoices_Q1_2022.xls") 

# 显示 Pandas 数据帧
invoices_q1_2022_pd_df

加载 Excel 工作文件并对其进行修改

您想加载 Excel 工作文件,对其进行修改,然后将其重新保存到工作数据区域。您可以使用 Python 库(如 pyexcel)中的方法进行修改,而无需将 Excel 文件转换为 Pandas 或 HCL 数据帧。

说明

与 Jupyter Notebook 应用程序类似,必须在单独的脚本编辑器单元中执行每个 Python 包安装 ( pip install )。

HighBond 机器人支持安装外部 Python 包,但工作流机器人不支持。

pip install pyexcel
pip install pyexcel-xlsx
# 导入 pyexcel 库
import pyexcel as pe

# 从 pyexcel-xlsx 库导入 get_data 方法
from pyexcel_xlsx import get_data

# 从“工作数据”区域加载 Excel 文件
hcl.load_working_file(name = "Invoices_Q1_2022.xlsx")

# 将 Excel 数据复制到 pyexcel 工作表
sheet = pe.get_sheet(file_name="Invoices_Q1_2022.xlsx")

# 从工作表顶部删除两行不需要的标题信息
del sheet.row[0, 1]

# 使用工作表中当前第一行中的名称值命名列
sheet.name_columns_by_row(0)

# 从工作表中删除三个不需要的列
del sheet.column['Prodno', 'Quantity', 'Unit_Cost']

# 将 pyexcel 工作表保存到新的 Excel 文件中
sheet.save_as("Invoices_Q1_2022_prepared.xlsx")

# 将新的 Excel 文件保存到“工作数据”区域
hcl.save_working_file(name = "Invoices_Q1_2022_prepared.xlsx")

备注

“工作数据”区域

对于机器人中的工作数据区域,可从机器人用户界面中的两个不同位置访问:

  • 工作数据选项卡

  • 脚本编辑器中的工作数据面板

这两个位置可以访问机器人中的同一个中央数据存储区。 您在一个位置执行的操作会自动同步到另一个位置。

load_working_file() 方法的自动生成

脚本编辑器中的工作数据面板可以自动生成预先填充了特定文件名的 load_working_file() 方法,非常省时省力。

  • 复制代码片段按钮工作数据面板中,每行都包含复制代码片段按钮 。选择该按钮可使用预先填充了行中文件名称的 load_working_file() 方法复制代码片段。可将代码片断粘贴到任一脚本编辑器单元格中。

  • 自动创建脚本编辑器单元格 当您将文件上传到脚本编辑器中的工作数据面板时,会在脚本顶部自动创建一个包含预先填充了文件名的 load_working_file() 方法的单元格。您可以使用该单元格开始工作,也可以将该方法复制到脚本中的另一个位置,然后删除该单元格。

文件加载行为

当您从工作数据区域将文件加载到 Python 运行时环境中时,您加载的是一个副本,而不是原始文件。如果运行时环境中已经存在具有相同名称和相同文件名大小写的文件,则会自动覆盖该文件。

文件名的大小写

指定工作文件名称时不区分大小写。 当在脚本编辑器中以交互方式运行脚本时,会在会话文件面板中复制用于工作文件名称的任何大小写。 如果两次加载同一个文件,但每次对文件名使用不同的大小写,结果是两个相同的会话文件,但使用不同的大小写名称。 使用任务运行脚本时,该行为相同。

不过,一旦文件加载到 Python 环境中,文件名就区分大小写。 因此,加载工作文件后,任何后续代码都需要复制加载文件时使用的大小写。

为了避免文件名大小写不匹配导致的简单脚本错误,加载工作文件时的最佳做法是在工作数据区域中复制文件名的大小写。

脚本错误消息

任何这些情况都会产生如下所示的脚本错误消息:

  • 包含该脚本的机器人中的工作数据区域中不存在指定的文件

  • 文件名拼写错误

  • 文件扩展名丢失

脚本错误消息:

例外:在工作区中找不到文件