“Super, j’ai plein de lignes en chaîne de caractères avec des infos qui semblent pertinentes, mais je fais comment pour récupérer ce qui m’intéresse en masse ?”
Python a dans sa boîte à outils de nombreuses fonctions et méthodes pour solutionner des problématiques.
Dans notre cas, l’API python propose la méthode split() pour nous aider à découper une chaîne de caractères.
La syntaxe :
str.split(sep=None, maxsplit=-1)
- Le paramètre “sep” sert à définir le séparateur d’une chaîne de caractères. S’il n’est pas spécifié ou None ce sont les espaces, les tabulations, les nouvelles lignes, etc. qui seront utilisés par défaut ;
- Le paramètre “maxsplit” permet d’imposer un nombre de découpage maximum. La valeur par défaut est -1 ce qui ne limite pas le nombre de découpages.
Pour imager un peu plus, on va prendre en exemple, la donnée de transaction suivante :
transaction = "ID12345 2024-07-15 10:31:43 79.99 EUR"
On veut découper cette transaction qui contient, l’identifiant unique, le moment de la transaction, son montant et sa monnaie.
On utilise donc split() sur cette transaction sans lui spécifier de paramètres :
details = transaction.split()
print(details)
# ['ID12345', '2024-07-15', '10:31:43', '79.99', 'EUR']
Maintenant, prenons un cas où nous devons utiliser un séparateur et où toutes les données ne nous intéresse pas (surtout à la fin pour faire simple 😝) :
transaction = "ID12345|2024-07-15|10:31:43|79.99|EUR|\odf^CX|02I2OINBNDO"
details = transaction.split(sep="|", maxsplit=5)
print(details)
# ['ID12345', '2024-07-15', '10:31:43', '79.99', 'EUR', 'odf^CX|02I2OINBNDO']
details[:-1]
# ['ID12345', '2024-07-15', '10:31:43', '79.99', 'EUR']
Comme vous le remarquez, le dernier élément de la liste regroupe les chaînes de caractères restantes.
Et j’ai utilisé “[:-1]” pour obtenir seulement les données qui m’intéressent : du début jusqu’à l’avant dernier élément.
Merci de votre lecture !