load_working_file() methode
Laadt een werkbestand uit het tabblad Werkgegevens om het bestand beschikbaar te maken voor Python/HCL-scripting. Het geladen bestand is een kopie, niet het origineel.
Syntaxis
hcl.load_working_file(name = "working_file_name")
Parameters
Naam | Beschrijving |
---|---|
name = working_file_name |
De naam van het werkbestand. De naam moet tussen aanhalingstekens staan. U moet de naam van het bestand in het tabblad Werkgegevens exact reproduceren, inclusief de bestandsextensie. Het bestand en het script dat het bestand laadt, moeten zich in dezelfde robot bevinden. working_file_name is niet hoofdlettergevoelig. Voor meer informatie raadpleegt u Hoofdlettergebruik in bestandsnamen. Opmerking working_file_name is hoofdlettergevoelig in de save_working_file() methode. |
Retourneert
Voor succes is de retourcode 202. Voor een fout, een foutmelding.
Voorbeelden
Opmerking
U kunt elk ondersteund bestandstype laden vanuit het tabblad Werkgegevens in een HighBond- of Workflow-robot en dit gebruiken in een Python/HCL-script. CSV- en Excel-bestanden worden hieronder als voorbeelden gebruikt omdat dit twee van de meest voorkomende soorten platte bestanden zijn die worden gebruikt om gegevens op te slaan en over te dragen.
CSV-voorbeelden
Een bestand laden vanuit het gedeelte Werkgegevens
U wilt een duplicatenanalyse uitvoeren van factuurrecords uit het eerste kwartaal van 2022. De records staan in het bestand Invoices_Q1_2022.csv dat eerder is geüpload naar het tabblad Werkgegevens in de robot. In het analysescript moet u het bestand eerst laden voordat u er analyses op kunt uitvoeren.
hcl.load_working_file(name = "Invoices_Q1_2022.csv")
Een CSV-werkbestand laden en converteren naar een dataframe
U wilt een geladen CSV-werkbestand converteren naar een dataframe, zodat u met de gegevens kunt werken in een tabelformaat met behulp van Python of HCL.
Een CSV-bestand laden en omzetten naar een Pandas dataframe
# Importeer de Pandas-bibliotheek pandas als pd importeren # Een CSV-bestand laden vanuit het gebied Werkgegevens hcl.load_working_file(name = "Invoices_Q1_2022.csv") # Lees het CSV-bestand naar een Pandas dataframe invoices_q1_2022_pd_df = pd.read_csv("Invoices_Q1_2022.csv") # Pandas-dataframe weergeven invoices_q1_2022_pd_df
Een CSV-bestand laden en omzetten naar een HCL-dataframe
# Een CSV-bestand laden vanuit het gebied Werkgegevens hcl.load_working_file(name = "Invoices_Q1_2022.csv") # Lees het CSV-bestand naar een HCL-dataframe invoices_q1_2022_hcl_df = hcl.read_csv("Invoices_Q1_2022.csv") # HCL-dataframe weergeven invoices_q1_2022_hcl_df
Een HCL-dataframe naar een Pandas-dataframe converteren
# HCL-dataframe naar Pandas-dataframe converteren invoices_q1_2022_pd_df = invoices_q1_2022_hcl_df.to_pandas() # Pandas-dataframe weergeven invoices_q1_2022_pd_df
Een gecomprimeerd CSV-werkbestand laden en converteren naar een dataframe
Met behulp van het ACLScript EXPORT-commando uploadt u de gegevens in een lokale Analytics-tabel naar een gecomprimeerd CSV-bestand (*.csv.gz) in het tabblad Werkgegevens in een HighBond- of Workflow-robot. U wilt het gecomprimeerde CSV-bestand laden en omzetten naar een dataframe, zodat u met de gegevens kunt werken in een tabelformaat met behulp van Python of HCL.
# Importeer de Pandas-bibliotheek pandas als pd importeren # Een gecomprimeerd CSV-bestand (*.csv.gz) laden vanuit het gebied Werkgegevens hcl.load_working_file(name = "Invoices_Q1_2022.csv.gz") # Lees het gecomprimeerde CSV-bestand naar een Pandas-dataframe invoices_q1_2022_pd_df = pd.read_csv("Invoices_Q1_2022.csv.gz", compression="gzip", header=0) # Pandas-dataframe weergeven invoices_q1_2022_pd_df
Excel-voorbeelden
Een Excel-werkbestand laden en converteren naar een dataframe
U wilt een geladen Excel-werkbestand naar een dataframe converteren, zodat u de gegevens in tabelvorm kunt bewerken met Python of HCL.
Excel-bestand met een *.xlsx-bestandsextensie
Het onderstaande voorbeeld laat zien hoe het geladen Excel-bestand wordt geconverteerd naar een Pandas dataframe. Indien nodig kunt u het Pandas-dataframe converteren naar een HCL-dataframe, zoals getoond in het voorbeeld direct hierboven.
# Importeer de Pandas-bibliotheek pandas als pd importeren # Een Excel-bestand (*.xlsx) laden vanuit het gebied Werkgegevens hcl.load_working_file(name = "Invoices_Q1_2022.xlsx") # Lees het Excel-bestand naar een Pandas-dataframe invoices_q1_2022_pd_df = pd.read_excel("Invoices_Q1_2022.xlsx") # Pandas-dataframe weergeven invoices_q1_2022_pd_df
Excel-bestand met een *.xls-bestandsextensie
Om een Excel-bestand te converteren dat de oudere *.xls-indeling gebruikt, moet u eerst de xlrd Python-bibliotheek installeren.
Opmerking
Net als in de Jupyter Notebook-app moet u de installatie van het Python-pakket ( pip install ) uitvoeren in een aparte script-editorcell.
Het installeren van externe Python-pakketten wordt ondersteund in HighBond-robots, maar niet in Workflow-robots.
pip install xlrd
# Importeer de Pandas-bibliotheek pandas als pd importeren # Een Excel-bestand (*.xls) laden vanuit het gebied Werkgegevens hcl.load_working_file(name = "Invoices_Q1_2022.xls") # Lees het Excel-bestand naar een Pandas-dataframe invoices_q1_2022_pd_df = pd.read_excel("Invoices_Q1_2022.xls") # Pandas-dataframe weergeven invoices_q1_2022_pd_df
Een Excel-werkbestand laden en wijzigen
U wilt een Excel-werkbestand laden, het wijzigen en vervolgens opnieuw opslaan in het gedeelte Werkgegevens. U kunt methoden uit een Python-bibliotheek zoals pyexcel gebruiken om de wijzigingen aan te brengen zonder het Excel-bestand naar een Pandas- of HCL-dataframe te hoeven converteren.
Opmerking
Net als bij de Jupyter Notebook-app moet u elke installatie van een Python-pakket ( pip install ) in een afzonderlijke scripteditorcel uitvoeren.
Het installeren van externe Python-pakketten wordt ondersteund in HighBond-robots, maar niet in Workflow-robots.
pip install pyexcel
pip install pyexcel-xlsx
# Importeer de pyexcel-bibliotheek importeer pyexcel als pe # Importeer de get_data-methode uit de pyexcel-xlsx-bibliotheek van pyexcel_xlsx import get_data # Een Excel-bestand laden vanuit het gebied Werkgegevens hcl.load_working_file(name = "Invoices_Q1_2022.xlsx") # Excel-gegevens naar een pyexcel-blad kopiëren sheet = pe.get_sheet(file_name="Invoices_Q1_2022.xlsx") # Twee rijen met ongewenste kopinformatie verwijderen van de bovenkant van het werkblad del sheet.row[0, 1] # Benoem de kolommen met behulp van de naamwaarden in wat nu de eerste rij in het werkblad is sheet.name_columns_by_row(0) # Drie ongewenste kolommen uit het werkblad verwijderen del sheet.column['Prodno', 'Quantity', 'Unit_Cost'] # Sla de pyexcel-sheet op als een nieuw Excel-bestand sheet.save_as("Invoices_Q1_2022_prepared.xlsx") # Sla het nieuwe Excel-bestand op in het gebied Gegevens in bewerking hcl.save_working_file(name = "Invoices_Q1_2022_prepared.xlsx")
Opmerkingen
Werkgegevens-gebied
Het gebied Werkgegevens in een robot is toegankelijk op twee verschillende locaties in de gebruikersinterface van Robots:
-
Het tabblad Werkgegevens
-
Het deelvenster Werkgegevens in de scripteditor
Beide locaties bieden toegang tot dezelfde centrale gegevensopslagruimte in een robot. Acties die u op de ene locatie uitvoert, worden automatisch gesynchroniseerd op de andere locatie.
Automatische generatie van de load_working_file()-methode
Als arbeidsbesparende functie genereert het paneel Werkgegevens in de scripteditor automatisch een kopie van de methode load_working_file() met een specifieke bestandsnaam die vooraf is ingevuld:
-
Knop Fragment kopiëren In het paneel Werkgegevens bevat elke rij de knop Fragment kopiëren
. Selecteer de knop om een fragment te kopiëren met de methode load_working_file() vooraf ingevuld met de naam van het bestand in de rij. U kunt het fragment in elke cel van de scripteditor plakken.
-
Automatisch aanmaken van scripteditorcel Wanneer u een bestand uploadt naar het paneel Werkgegevens in de scripteditor, wordt er automatisch een cel met de methode load_working_file(), vooraf ingevuld met de naam van het bestand, bovenaan het script aangemaakt. U kunt de cel als startpunt gebruiken of de methode naar een andere locatie in het script kopiëren en vervolgens de cel verwijderen.
Gedrag bij het laden van bestanden
Wanneer u een bestand laadt vanuit het gedeelte Werkgegevens in de Python-runtime-omgeving, laadt u een kopie, niet het oorspronkelijke bestand. Als er in de runtime-omgeving al een bestand bestaat met dezelfde naam en identieke hoofdletters/kleine letters in de bestandsnaam, wordt dit automatisch overschreven.
Hoofdlettergebruik in bestandsnamen
Wanneer u working_file_name opgeeft, is dit niet hoofdlettergevoelig. Wanneer u een script interactief uitvoert in de scripteditor, wordt de hoofdletternotatie die u gebruikt voor working_file_name gerepliceerd in het paneel Sessiebestanden. Als u hetzelfde bestand twee keer laadt en daarbij verschillende hoofdletters gebruikt voor de bestandsnaam, resulteert dit in twee identieke sessiebestanden met namen met verschillende hoofdletters. Het gedrag is hetzelfde wanneer u een taak gebruikt om een script uit te voeren.
Zodra een bestand in de Python-omgeving is geladen, zijn bestandsnamen echter hoofdlettergevoelig. Na het laden van een werkbestand moet alle daaropvolgende code de hoofdletternotatie repliceren die u hebt gebruikt bij het laden van het bestand.
Om eenvoudige scriptfouten door niet-overeenkomende hoofdletters in bestandsnamen te voorkomen, is het de beste praktijk om bij het laden van een werkbestand de hoofdletters van de bestandsnaam in het gedeelte Werkgegevens exact over te nemen.
Scriptfoutbericht
Elk van deze situaties veroorzaakt de onderstaande scriptfoutmelding:
-
het opgegeven bestand bestaat niet in het gedeelte Werkgegevens in de robot die het script bevat
-
de bestandsnaam is verkeerd gespeld
-
the file extension is missing
Script-foutmelding:
Uitzondering: Bestand niet gevonden in de Werk-sectie