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")
备注
文件加载行为
当您从工作数据区域将文件加载到 Python 运行时环境中时,您加载的是一个副本,而不是原始文件。如果运行时环境中已经存在具有相同名称和相同文件名大小写的文件,则会自动覆盖该文件。
文件名的大小写
指定工作文件名称时不区分大小写。当在脚本编辑器中以交互方式运行脚本时,会在会话文件面板中复制用于工作文件名称的任何大小写。如果两次加载同一个文件,但每次对文件名使用不同的大小写,结果是两个相同的会话文件,但使用不同的大小写名称。使用任务运行脚本时,该行为相同。
不过,一旦文件加载到 Python 环境中,文件名就区分大小写。因此,加载工作文件后,任何后续代码都需要复制加载文件时使用的大小写。
为了避免文件名大小写不匹配导致的简单脚本错误,加载工作文件时的最佳做法是在工作数据区域中复制文件名的大小写。
脚本错误消息
任何这些情况都会产生如下所示的脚本错误消息:
-
包含该脚本的机器人中的工作数据区域中不存在指定的文件
-
文件名拼写错误
-
文件扩展名丢失
脚本错误消息:
例外:在工作区中找不到文件