Qsv - Un outil puissant pour gérer vos fichiers CSV facilement

par Korben -

L’autre jour, je suis tombé sur un utilitaire plutôt cool nommé qsv qui risque bien de changer votre manière de travailler avec les fichiers CSV. C’est une version améliorée de xsv, un utilitaire populaire pour la manipulation de fichiers CSV, qui permet d’analyser, traiter et manipuler des fichiers CSV ultra-rapidement en ligne de commade. En plus de toutes les commandes dispo (+ de 33 commandes), qsv est capable de fonctionner en multithread ce qui permet notamment d’accélérer le traitement des fichiers volumineux !

En bref, ces commandes vous offrent une multitude de fonctionnalités pour manipuler, transformer et analyser vos fichiers CSV de manière efficace et précise. Quel que soit votre besoin, il y a probablement une commande qui peut vous aider à accomplir votre tâche.

Voici quelques une de ces commandes :

  • apply : Applique une série de transformations (chaînes de caractères, dates, mathématiques, monnaies, géocodage) à une colonne CSV.
  • applydp : Une version allégée de “apply”
  • behead : Supprime les en-têtes d’un fichier CSV.
  • cat : Concatène les fichiers CSV par ligne ou par colonne.
  • count : Compte le nombre de lignes dans un fichier CSV.
  • dedup : Supprime les lignes en double d’un fichier CSV.
  • diff : Trouve la différence entre deux CSV.
  • enum : Ajoute une nouvelle colonne en numérotant les lignes par l’ajout d’une colonne d’identificateurs incrémentiels ou uuid. Peut aussi être utilisé pour copier une colonne ou remplir une nouvelle colonne avec une valeur constante.
  • excel : Exporte une feuille Excel/ODS spécifiée vers un fichier CSV.
  • exclude : Enlève un ensemble de données CSV d’un autre ensemble en se basant sur les colonnes spécifiées.
  • explode : Explose les lignes en plusieurs en scindant une valeur de colonne sur la base du séparateur donné.

Et il y en a encore bien d’autres comme “fetch” qui récupère les données de services web pour chaque ligne en utilisant HTTP Get, ou “join” qui fait une jointure interne, externe, croisée, anti & semi sur les fichiers CSV.

L’une des fonctionnalités que j’ai trouvé le plus sympa dans qsv c’est “apply” avec la prise en charge de fonctions de traitement du langage naturel (NLP), qui incluent la reconnaissance des sentiments, la détection de langues, la détection de similarités et la censure des gros mots ^^. Cela ouvre un univers de possibilités pour l’analyse des données textuelles. Imaginez pouvoir extraire le sentiment général des commentaires des clients ou détecter la langue utilisée, tout ça à la volée. C’est génial !

L’autre aspect que j’apprécie énormément dans qsv est son intégration avec d’autres outils tels que PostgreSQL, SQLite, luau (un langage de script rapide et flexible dérivé de Lua) et Python. Cela signifie que vous pouvez lancer des requêtes ou des scripts pour chaque ligne d’un fichier CSV, voire même effectuer des jointures avec des fichiers de grande taille sans bousiller la mémoire dispo.

Pour vous donner un exemple de la puissance de qsv, imaginez que vous avez deux fichiers CSV avec 1 million de lignes et 9 colonnes chacun que vous devez comparer. Avec qsv, cette tâche peut être accomplie en moins de 600 ms ! Excel serait sans doute très lent dans la même situation et risquerait même de planter comme une grosse daube.

Bref, avec qsv, c’est des temps de traitement plus courts, et la possibilité d’effectuer des tâches complexes en un clin d’œil.

Pour l’essayer vous-même, vous pouvez le télécharger à partir de GitHub, où vous trouverez également une documentation complète.