Problèmes de pratique de Python : analyse des fichiers CSV

By | juin 14, 2021

Expert Python

Êtes-vous un développeur à la recherche d'un peu de pratique avec fichiers de valeurs séparées par des virgules (CSV) avant un prochain entretien ? Ce didacticiel vous guidera à travers une série de problèmes pratiques Python CSV pour vous aider à vous préparer.

Ce tutoriel s'adresse aux développeurs Python intermédiaires. Il suppose une connaissance de base de Python et de l'utilisation de fichiers CSV. Comme d'autres didacticiels de problèmes pratiques, chacun des problèmes répertoriés ici montre la description du problème. Vous verrez d'abord l'énoncé du problème, puis vous aurez la possibilité de développer votre propre solution.

Dans ce didacticiel, vous explorerez :

  • Écriture de code pour travailler avec des fichiers CSV
  • En faisant développement piloté par les tests avec pytest
  • Discuter de vos solutions et améliorations possibles
  • Les compromis entre le module CSV intégré et pandas

Vous pouvez obtenir un code squelette avec des tests unitaires ayant échoué pour chacun des problèmes que vous verrez dans ce didacticiel en cliquant sur le lien ci-dessous :

Analyse Python CSV : Résultats de football

Votre premier problème concerne le classement des équipes de Premier League anglaise. Vous n'avez besoin d'aucune connaissance particulière du football pour résoudre ce problème, juste Python !

Au fur et à mesure que vous résolvez le problème, essayez d'écrire plus de tests unitaires pour chaque bit de fonctionnalité et ensuite écrire la fonctionnalité pour faire passer les tests. C'est ce qu'on appelle le développement piloté par les tests, et cela peut être un excellent moyen de montrer non seulement votre codage, mais aussi vos côtelettes de test !

Description du problème

Pour ce tour du problème, s'en tenir à la bibliothèque standard csv module. Vous aurez une autre chance en utilisant des pandas plus tard. Voici votre premier problème :

Trouver le différentiel de but minimum

Ecrivez un programme qui prend un nom de fichier sur la ligne de commande et traite le contenu d'un fichier CSV. Le contenu sera le classement de fin de saison de football de la Premier League anglaise. Votre programme devrait déterminer quelle équipe a eu le plus petit différentiel de buts cette saison.

La première ligne du fichier CSV sera constituée d'en-têtes de colonne, chaque ligne suivante affichant les données d'une équipe :

Équipe, Jeux, Victoires, Défaites, Nuls, Buts pour, Buts contre
Arsenal,38,26,9,3,79,36

Les colonnes étiquetées Objectifs pour et Buts contre contiennent le nombre total de buts marqués pour et contre chaque équipe au cours de cette saison. (Donc, Arsenal a marqué 79 buts et a marqué 36 buts contre eux.)

Écrivez un programme pour lire le fichier, puis imprimez le nom de l'équipe avec la plus petite différence dans Objectifs pour et Buts contre. Créez des tests unitaires avec pytest pour tester votre programme.

Il y a un seul test unitaire fourni dans le code squelette qui teste l'énoncé du problème que vous verrez plus tard. Vous pouvez en ajouter d'autres au fur et à mesure que vous écrivez votre solution. Il y a aussi deux appareils pytest donnés :

# test_football_v1.py
importer pytest
importer football_v1 comme fb

@pytest.fixation
déf mock_csv_data():
    revenir [[[[
        "Équipe, Jeux, Victoires, Défaites, Nuls, Buts pour, Buts contre",
        "Liverpool FC, 38, 32, 3, 3, 85, 33",
        "Norwich City FC, 38, 5, 27, 6, 26, 75",
    ]

@pytest.fixation
déf mock_csv_file(chemin_tmp, mock_csv_data):
    fichier de données = chemin_tmp / "football.csv"
    fichier de données.écrire_texte("n".rejoindre(mock_csv_data))
    revenir str(fichier de données)

Lisez l'article complet sur https://realpython.com/python-interview-problem-parsing-csv-files/ »


[ Improve Your Python With 🐍 Python Tricks 💌 – Get a short & sweet Python Trick delivered to your inbox every couple of days. >> Click here to learn more and see examples ]

[ad_2]