CommencerCommencer gratuitement

Écrire un générateur pour charger des données par blocs (3)

Super ! Vous venez de créer une fonction génératrice que vous pouvez utiliser pour traiter de gros fichiers.

Utilisons-la maintenant pour traiter le jeu de données de la Banque mondiale comme précédemment. Vous allez traiter le fichier ligne par ligne afin de créer un dictionnaire comptant le nombre d’occurrences de chaque pays dans une colonne du jeu de données. Pour cet exercice, toutefois, vous n’allez pas traiter seulement 1 000 lignes de données, mais l’ensemble du jeu de données !

La fonction génératrice read_large_file() et le fichier CSV 'world_dev_ind.csv' sont préchargés et prêts à l’emploi. À vous de jouer !

Cet exercice fait partie du cours

Boîte à outils Python

Afficher le cours

Instructions

  • Associez le fichier 'world_dev_ind.csv' à file dans le gestionnaire de contexte avec open().
  • Complétez la boucle for afin qu’elle itère sur le générateur issu de l’appel à read_large_file() pour traiter toutes les lignes du fichier.

Exercice interactif pratique

Essayez cet exercice en complétant cet exemple de code.

# Initialize an empty dictionary: counts_dict
counts_dict = {}

# Open a connection to the file
with ____ as ____:

    # Iterate over the generator from read_large_file()
    for line in ____:

        row = line.split(',')
        first_col = row[0]

        if first_col in counts_dict.keys():
            counts_dict[first_col] += 1
        else:
            counts_dict[first_col] = 1

# Print            
print(counts_dict)
Modifier et exécuter le code