load_working_file() メソッド

作業データ]領域から作業ファイルを読み込み、ファイルを Python/HCL スクリプトで使用できるようにします。読み込まれたファイルはコピーであり、元のファイルではありません。

構文

hcl.load_working_file(name = "作業ファイル名")

パラメーター

名前 説明
name = 作業ファイル名

作業ファイルの名前。名前は引用符で囲む必要があります。

ファイル拡張子を含め、[作業データ]領域のファイル名を正確にコピーする必要があります。ファイル、およびファイルを読み込むスクリプトは、同じロボットになければなりません。

作業ファイル名は大文字と小文字を区別しません。詳細については、「ファイル名の大文字と小文字の区別」を参照してください。

メモ

作業ファイル名は大文字と小文字を区別しますsave_working_file() メソッド

戻り値

成功した場合、戻りコードは 202 です。失敗した場合、エラー メッセージ発生します。

メモ

HighBond やワークフロー ロボットの[作業データ]領域から、サポートされている任意のファイル タイプを読み込んで、Python/HCL スクリプトで使用することができます。以下の例では CSV ファイルと Excel ファイルを使用していますが、それら 2 つがデータの保存と転送に使用される最も一般的なタイプのフラットファイルであるからです。

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 コマンドを使用して、HighBond ロボットやワークフロー ロボットの[作業データ]領域の圧縮された CSV ファイル(*.csv.gz)に、ローカルの Analytics テーブルのデータをアップロードします。圧縮された 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)を実行する必要があります。

外部 Python パッケージのインストールは、HighBond ロボットでサポートされています。ワークフロー ロボットではサポートされていません。

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)を実行する必要があります。

外部 Python パッケージのインストールは、HighBond ロボットでサポートされています。ワークフロー ロボットではサポートされていません。

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")

# ワークシートの上部から不要なヘッダー情報である 2 行を削除
del sheet.row[0, 1]

# ワークシートの先頭の行である名前値を使用して、列の名前を指定する
sheet.name_columns_by_row(0)

# 不要な 3 つの列をワークシートから削除する
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 ランタイム環境にファイルを読み込むときには、元のファイルではなく、コピーを読み込んでいます。大文字と小文字の区別を含め同一のファイルがすでにランタイム環境に存在する場合は、自動的に上書きされます。

ファイル名の大文字と小文字の区別

作業ファイル名を指定するときには、大文字と小文字が区別されません。スクリプト エディターで対話式にスクリプトを実行するときには、作業ファイル名で使用した大文字と小文字が[セッション ファイル]パネルに表示されます。同じファイルを 2 回読み込み、毎回ファイル名で大文字と小文字が異なる場合、名前の大文字と小文字が異なる 2 つのまったく同じセッション ファイルが作成されます。タスクを使用してスクリプトを実行するときにも、同じ動作になります。

ただし、ファイルが Python 環境に読み込まれると、ファイル名の大文字と小文字が区別されます。このため、作業ファイルを読み込んだ後は、ファイルを読み込んだときに使用した大文字と小文字をコードで指定する必要があります。

ファイル名の大文字と小文字の不一致による単純なスクリプト エラーを回避するには、作業ファイルを読み込むときに、[作業データ]領域のファイル名の大文字と小文字を複製するのがベストプラクティスです。

スクリプト エラー メッセージ

次の状況では、スクリプト エラー メッセージが表示されます。

  • 指定したファイル名がスクリプトを含むロボットの[作業データ]領域に存在しない

  • ファイル名の綴りが間違っている

  • ファイル拡張子がない

スクリプト エラー メッセージ:

例外:ファイルが作業セクションで見つかりません