From: Vincent Le Gallic Date: Sun, 15 Feb 2015 17:43:35 +0000 (+0100) Subject: [all_past] Récupérer les gains/dépenses de tous les comptes dans le passé X-Git-Url: http://gitweb.pimeys.fr/?p=scripts-20-100.git;a=commitdiff_plain;h=209b9bae939c744017dfa0192daf855d16db3902 [all_past] Récupérer les gains/dépenses de tous les comptes dans le passé --- diff --git a/bde/stats/all_past.py b/bde/stats/all_past.py new file mode 100755 index 0000000..75f1b1d --- /dev/null +++ b/bde/stats/all_past.py @@ -0,0 +1,47 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +"""Pour récupérer les soldes des comptes à plusieurs moments du passé.""" + +import depenses + +def get_idbdes(): + """Récupère les idbdes de tous les comptes.""" + con, cur = depenses.get_cursor() + cur.execute("SELECT idbde FROM comptes WHERE idbde >= 0;") + l = cur.fetchall() + l = [i[0] for i in l] + return l + +def line_csv(idbde, li): + """Renvoie la liste ``li`` comme une ligne de fichier csv""" + return "%s;%s;%s;%s;%s\n" % (idbde, int(li[0]), int(li[1]), '"%s"' % (li[2],), '"%s"' % (li[3],)) + +def to_csv(data, path): + """Écrit le csv.""" + f = open(path, "w") + f.write('''N° de compte;Année;Mois;Dépenses;Gains\n''') + idbdes = data.keys() + idbdes.sort() + for i in idbdes: + datai = data[i] + for l in datai: + f.write(line_csv(i, l)) + f.close() + +def get_all(idbdes, verbose=False): + """Récupère toutes les données.""" + data = {} + if verbose: + print "Dernier idbde : %s" % (max(idbdes),) + for i in idbdes: + data[i] = depenses.get_depenses(i, bymonth=True)[0] + if i % 100 == 0: + if verbose: + print i + return data + +if __name__ == "__main__": + idbdes = get_idbdes() + data = get_all(idbdes, verbose=True) + to_csv(data, "all_past.csv")