Outils pour utilisateurs

Outils du site


dev:powershell:charger_donnees_depuis_fichier

PowerShell : Charger ou importer des données

Les données exportées dans des fichiers textes au format brut, CSV ou JSON peuvent être relues et chargées en mémoire dans des objets accessibles par les scripts PowerShell.

La cmdlet Get-Content permet de relire un fichier texte et d'obtenir un tableau. Chaque élément du tableau correspond à une ligne du fichier.

Soit un fichier texte “fichierA.txt” avec le contenu :

fichierA.txt
A01
A02
A03
A04

Pour charger le contenu du fichier “fichierA.txt”

$lines = Get-Content -Path '.\fichierA.txt'
 
# Afficher le nombre de lignes 
$lines.Length
4
 
# Accès au contenu de la première ligne
$lines[0]
A01
 
# Afficher toutes les lignes
foreach ( $line in $lines ){
  Write-Output "$line"
}

Formatage CSV

De nombreuses applications proposent un formatage des données en CSV. La cmdlet Import-CSV permet de relire et d'accéder à ces données.

Ci-dessous un exemple de fichier texte formaté en CSV

aUsersFile.csv
FirstName,LastName,UserID,Department
John,Doe,u001023,Sales    
Judith,Arrow,u025351,Sales
Elon,Pusk,u145237,RD
# Importe les données du fichier aUsersFile.csv
$users = Import-Csv '.\aUsersFile.csv'
 
# La variable $users référence un tableau
# chaque élément du tableau correspond à un enregistrement CSV
$users.Length
3
 
# Chaque élément du tableau est un objet ayant pour noms d'attributs
# les noms des colonnes du fichier (première ligne du fichier CSV) 
$users[0].FirstName   
John

Quelques options usuelles pour la cmdlet Import-Csv :

  • -Delimiter permet de spécifier un caractère de délimitation des champs autre que , ;
  • -Header pour spécifier les noms des attributs (colonnes) si la première ligne du fichier n'est pas le nom

Formatage XML

Le XML permet de décrire et stocker des données structurées de façon plus complexes que le CSV.

La cmdlet Import-Clixml permet de récupérer des données à partir d'un fichier XML et produit un tableau d'objets. Les options -First et -Skip permettent de limiter l'import.

$users = Import-Clixml '.\aUsersFile.xml'

Formatage JSON

Comme XML, le formatage JSON permet de représenter des données complexes cependant sa syntaxe est moins verbeuse. Il est largement utilisé.

La cmdlet ConvertFrom-Json peut être combinée avec Get-Content pour lire un fichier contenant des objets JSON et obtenir en objets en mémoire :

$users = Get-Content '.\aUsersFile.json' | ConvertFrom-Json
dev/powershell/charger_donnees_depuis_fichier.txt · Dernière modification : 2023/06/29 15:26 de yoann