Cómo importar archivos CSV en un array en PowerShell

  1. El Archivo de Valores Separados por Comas
  2. Usar el Cmdlet Import-CSV para Importar Archivos CSV en un Arreglo en PowerShell
  3. Usar los Cmdlets Get-Content y ConvertFrom-Csv para Importar Archivos CSV en un Arreglo en PowerShell
  4. Usar la Clase System.IO.File y el Cmdlet ConvertFrom-Csv para Importar Archivos CSV en un Arreglo en PowerShell
  5. Conclusión
Cómo importar archivos CSV en un array en PowerShell

Los archivos CSV (Valores Separados por Comas) sirven como un formato de datos fundamental, encapsulando información en una estructura tabular con campos separados por comas. Aunque comúnmente se asocian con software de hojas de cálculo, su naturaleza sencilla pero versátil encuentra aplicación en diversas plataformas, incluyendo PowerShell.

En la escritura de scripts de PowerShell, leer y procesar datos CSV de manera eficiente es crucial para las tareas de automatización y manipulación de datos. Este artículo explora tres métodos: Import-CSV, cmdlets Get-Content y la clase System.IO.File con el cmdlet ConvertFrom-Csv para importar archivos CSV en arreglos, ofreciendo información sobre su uso, ventajas y escenarios de aplicación.

El Archivo de Valores Separados por Comas

Un archivo CSV (Valores Separados por Comas) contiene datos o conjuntos separados por comas. Esto permite que los datos se guarden en un formato tabular.

Los usuarios pueden utilizar archivos CSV con la mayoría de los programas de hojas de cálculo, como Microsoft Excel o Google Hojas de Cálculo. Sin embargo, cuando lo abrimos en un software que no se adapta a formatos tabulares, los datos estarán separados por comas, lo que PowerShell puede utilizar para separar valores en arreglos.

Por ejemplo, a continuación se muestra un formato CSV en bruto con dos columnas.

Archivo users.csv:

Name,Salary
John,1000
Paul,2000
Mary,1500
Matt,3000

Usar el Cmdlet Import-CSV para Importar Archivos CSV en un Arreglo en PowerShell

El comando Import-CSV en Windows PowerShell crea objetos personalizados en forma de tabla a partir de los elementos presentados en el archivo CSV anterior.

En el script de Windows PowerShell a continuación, utilizaremos el comando Import-CSV para asignar los datos del archivo CSV a una variable de tipo arreglo de Windows PowerShell.

$users = Import-Csv path\users.csv
$users

Comenzamos utilizando el cmdlet Import-Csv para leer datos de un archivo CSV ubicado en path\users.csv. Este cmdlet lee el contenido del archivo CSV y lo convierte en un objeto de PowerShell.

Luego asignamos los datos importados del CSV a la variable $users. Esta variable ahora contiene el contenido del archivo CSV como un arreglo de objetos, con cada objeto representando una fila del archivo CSV.

Una vez ejecutado, podemos ver los valores del archivo CSV convertidos a una lista de formato llamada un objeto ArrayList.

Salida:

leer archivos csv a un array en powershell - salida 1

Acceder a Elementos Después de Importar Archivos CSV en un Arreglo en PowerShell

Cuando importamos un archivo CSV utilizando Import-Csv en PowerShell, cada fila del archivo CSV se representa como un objeto, y todos los datos CSV se almacenan como un arreglo de estos objetos. Para acceder a filas o elementos individuales dentro de los datos CSV, utilizamos la indexación de arreglos.

$users = Import-Csv path\users.csv
$users[0]

Comenzamos importando un archivo CSV llamado users.csv ubicado en la ruta especificada. Usamos el cmdlet Import-Csv para este propósito.

Este cmdlet lee el contenido del archivo CSV y lo convierte en un objeto de PowerShell.

Después de importar el archivo CSV, queremos acceder a la primera fila de los datos CSV. Logramos esto utilizando la indexación de arreglos.

En PowerShell, la indexación de arreglos comienza en 0, por lo que $users[0] se refiere al primer elemento (o fila) en el arreglo $users.

Salida:

leer archivos csv a arreglos en powershell - salida 2

Podemos consultar la propiedad de un elemento particular del arreglo de PowerShell tratando el nombre de la columna como un nombre de propiedad, como en el ejemplo a continuación.

$users = Import-Csv path/users.csv
$users[0].Name

Después de importar el archivo CSV y almacenar su contenido en la variable $users, procedemos a acceder a una propiedad específica de la primera fila de los datos CSV. En este caso, queremos recuperar el valor de la propiedad Name de la primera fila.

Al especificar $users[0].Name, estamos accediendo a la propiedad Name del objeto que representa la primera fila de los datos CSV. Esto nos permite recuperar el valor asociado con la columna Name en el archivo CSV para la primera fila.

Salida:

leer archivos csv a matriz en powershell - salida 3

Podemos contar el número de elementos en un arreglo utilizando la propiedad Count a continuación.

$users = Import-Csv path/users.csv
$users.Count

Después de importar el archivo CSV y almacenar su contenido en la variable $users, queremos determinar el número de elementos (filas) en el arreglo.

Al usar $users.Count, estamos accediendo a la propiedad Count del arreglo almacenado en la variable $users. Esta propiedad devuelve el número de elementos (filas) en el arreglo.

Salida:

leer archivos csv en un array en powershell - salida 4

Usar los Cmdlets Get-Content y ConvertFrom-Csv para Importar Archivos CSV en un Arreglo en PowerShell

Un enfoque sencillo para lograr esta tarea es utilizando los cmdlets Get-Content y ConvertFrom-Csv. Este método nos permite leer el contenido de un archivo CSV como texto usando Get-Content y luego convertirlo en objetos de PowerShell usando ConvertFrom-Csv, creando así un arreglo de objetos que representan cada fila de los datos CSV.

$content = Get-Content -Path "C:\path\data.csv"
$array = $content | ConvertFrom-Csv
$array

Comenzamos utilizando Get-Content para leer el contenido del archivo CSV ubicado en la ruta especificada y almacenarlo en la variable $content.

Luego, pasamos el contenido del archivo CSV almacenado en $content a ConvertFrom-Csv. Este cmdlet convierte el texto CSV en objetos de PowerShell y los almacena en la variable $array.

Una vez ejecutado, podemos ver los valores del archivo CSV convertidos a una lista de formato llamada un objeto ArrayList.

Salida:

leer archivos csv a arreglo en powershell - salida 5

Usar la Clase System.IO.File y el Cmdlet ConvertFrom-Csv para Importar Archivos CSV en un Arreglo en PowerShell

La clase System.IO.File permite la lectura del contenido de archivos CSV, que luego se transforman en objetos de PowerShell utilizando el cmdlet ConvertFrom-Csv. Este método no solo proporciona flexibilidad, sino que también garantiza facilidad de uso, capacitando a los usuarios para gestionar sin esfuerzo los datos CSV dentro de sus scripts de PowerShell.

$content = [System.IO.File]::ReadAllText("C:\path\data.csv")
$array = $content | ConvertFrom-Csv
$array

Usamos [System.IO.File]::ReadAllText para leer el contenido del archivo CSV ubicado en la ruta especificada y almacenarlo en la variable $content.

Luego, pasamos el contenido del archivo CSV almacenado en $content a ConvertFrom-Csv. Este cmdlet convierte el texto CSV en objetos de PowerShell y los almacena en la variable $array.

Una vez ejecutado, podemos ver los valores del archivo CSV convertidos a una lista de formato llamada un objeto ArrayList.

Salida:

leer archivos csv a matriz en powershell - salida 6

Conclusión

En la escritura de scripts de PowerShell, manejar datos CSV sin problemas es imperativo para la automatización y el procesamiento de datos efectivos. Al aprovechar los cmdlets Import-CSV, Get-Content o la clase System.IO.File con el cmdlet ConvertFrom-Csv, los usuarios pueden leer eficientemente archivos CSV en arreglos, empoderándolos para manipular datos con facilidad y flexibilidad.

Ya sea extrayendo ideas de grandes conjuntos de datos o automatizando tareas repetitivas, estos métodos proporcionan herramientas poderosas para los desarrolladores de PowerShell. Con una comprensión clara de estas técnicas, los usuarios pueden aprovechar el poder de los datos CSV dentro de sus scripts, optimizando flujos de trabajo y mejorando la productividad.

¿Disfrutas de nuestros tutoriales? Suscríbete a DelftStack en YouTube para apoyarnos en la creación de más guías en vídeo de alta calidad. Suscríbete
Marion Paul Kenneth Mendoza avatar Marion Paul Kenneth Mendoza avatar

Marion specializes in anything Microsoft-related and always tries to work and apply code in an IT infrastructure.

LinkedIn

Artículo relacionado - PowerShell Array

Artículo relacionado - PowerShell CSV