From 2a8f1001a832e5eedf021e55f2d255ddf21a12bf Mon Sep 17 00:00:00 2001 From: 40b967d450cc73a5ec8d086a42cb7ff3 Date: Wed, 3 Nov 2021 11:07:36 +0100 Subject: [PATCH] analyse-syndrome-grippal.org: Updated to use a local file and only download if needed --- module3/exo1/analyse-syndrome-grippal.org | 21 +++++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) diff --git a/module3/exo1/analyse-syndrome-grippal.org b/module3/exo1/analyse-syndrome-grippal.org index 1720b70..7e40ee3 100644 --- a/module3/exo1/analyse-syndrome-grippal.org +++ b/module3/exo1/analyse-syndrome-grippal.org @@ -46,6 +46,10 @@ Les données de l'incidence du syndrome grippal sont disponibles du site Web du #+NAME: data-url http://www.sentiweb.fr/datasets/incidence-PAY-3.csv +Le jeu de données devrait déjà être dans un fichier local : +#+NAME: data-file +data.csv + Voici l'explication des colonnes donnée sur [[https://ns.sentiweb.fr/incidence/csv-schema-v1.json][le site d'origine:]] | Nom de colonne | Libellé de colonne | @@ -64,13 +68,22 @@ Voici l'explication des colonnes donnée sur [[https://ns.sentiweb.fr/incidence/ L'indication d'une semaine calendaire en format [[https://en.wikipedia.org/wiki/ISO_8601][ISO-8601]] est populaire en Europe, mais peu utilisée aux Etats-Unis. Ceci explique peut-être que peu de logiciels savent gérer ce format. Le langage Python le fait depuis la version 3.6. Nous utilisons donc ce langage pour la préparation de nos données, ce qui a l'avantage de ne nécessiter aucune bibliothèque supplémentaire. (Note: nous expliquerons dans le module 4 pourquoi il est avantageux pour la réproductibilité de se limiter à un minimum de bibliothèques.) ** Téléchargement -Après avoir téléchargé les données, nous commençons par l'extraction des données qui nous intéressent. D'abord nous découpons le contenu du fichier en lignes, dont nous jetons la première qui ne contient qu'un commentaire. Les autres lignes sont découpées en colonnes. +Si le fichier de données local existe, on en extrait les données, sinon, on le créé à partir des données téléchargées depuis l'URL. +Après avoir récupéré les données, nous commençons par l'extraction des données qui nous intéressent. D'abord nous découpons le contenu du fichier en lignes, dont nous jetons la première qui ne contient qu'un commentaire. Les autres lignes sont découpées en colonnes. -#+BEGIN_SRC python :results silent :var data_url=data-url +#+BEGIN_SRC python :results silent :var data_url=data-url data_file=data-file +import os from urllib.request import urlopen -data = urlopen(data_url).read() -lines = data.decode('latin-1').strip().split('\n') +data_file = data_file.strip() # We strip because emacs insert a '\n' in data-file +if (os.path.isfile(data_file)) : + data = open(data_file, 'r').read() +else : + data = urlopen(data_url).read().decode('latin-1') + backup_data = open(data_file, 'w') + backup_data.write(str(data)) + backup_data.close() +lines = data.strip().split('\n') data_lines = lines[1:] table = [line.split(',') for line in data_lines] #+END_SRC -- 2.18.1