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

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:
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:
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:
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:
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:
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:
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.
Marion specializes in anything Microsoft-related and always tries to work and apply code in an IT infrastructure.
LinkedInArtículo relacionado - PowerShell Array
- Arreglos multidimensionales de PowerShell
- Cómo agregar objetos a un arreglo de objetos en PowerShell
- Cómo eliminar valores duplicados de un array de PowerShell
- Cómo pasar un array a una función en PowerShell
- Array de cadenas en PowerShell