Écrire un générateur pour charger des données par blocs (3)
Bravo ! Vous venez de créer une fonction génératrice que vous pouvez utiliser pour traiter de gros fichiers.
Utilisons maintenant votre fonction génératrice pour traiter l'ensemble de données de la Banque mondiale comme vous l'avez fait précédemment. Vous allez traiter le fichier ligne par ligne afin de créer un dictionnaire comptant le nombre de fois où chaque pays apparaît dans une colonne de l'ensemble de données. Pour cet exercice, toutefois, vous ne traiterez pas seulement 1000 lignes de données, mais l'ensemble complet !
La fonction génératrice read_large_file() et le fichier CSV 'world_dev_ind.csv' sont préchargés et prêts à être utilisés. À vous de jouer !
Cette activité fait partie du cours
Boîte à outils Python
Instructions de l’exercice
- Associez le fichier
'world_dev_ind.csv'àfiledans le gestionnaire de contexte avecopen(). - Complétez la boucle
forpour qu'elle itère sur le générateur retourné par l'appel àread_large_file()afin de traiter toutes les lignes du fichier.
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
# 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)