Voila marche à partir d'un fichier csv
This commit is contained in:
parent
62fde58808
commit
e7038d302c
@ -1,5 +1,5 @@
|
|||||||
nom montant
|
nom,montant
|
||||||
pipo 23
|
pipo, 23
|
||||||
hiphop 40
|
hiphop, 40
|
||||||
chic 0
|
chic, 0
|
||||||
Couette 500
|
Couette,50
|
||||||
|
|
37
pralo.py
Normal file → Executable file
37
pralo.py
Normal file → Executable file
@ -1,5 +1,4 @@
|
|||||||
#/usr/bin/env python
|
#! /usr/bin/env python
|
||||||
#-*- coding:utf-*-
|
|
||||||
#
|
#
|
||||||
|
|
||||||
# ------------------------------
|
# ------------------------------
|
||||||
@ -13,6 +12,9 @@
|
|||||||
# ------------------------------
|
# ------------------------------
|
||||||
# Imports
|
# Imports
|
||||||
# ------------------------------
|
# ------------------------------
|
||||||
|
import csv
|
||||||
|
import os
|
||||||
|
import optparse
|
||||||
|
|
||||||
# ------------------------------
|
# ------------------------------
|
||||||
# Classes
|
# Classes
|
||||||
@ -21,9 +23,18 @@
|
|||||||
# ------------------------------
|
# ------------------------------
|
||||||
# Fonctions
|
# Fonctions
|
||||||
# ------------------------------
|
# ------------------------------
|
||||||
def extrait_from_file(file):
|
def extrait_from_file(file_name):
|
||||||
"""Extrait les informations à partir d'un fichier"""
|
"""Extrait les informations à partir d'un fichier"""
|
||||||
pass
|
file = open(file_name, "r")
|
||||||
|
try:
|
||||||
|
reader = csv.reader(file, delimiter = ",")
|
||||||
|
compte = list(reader)
|
||||||
|
for i in compte[1:]:
|
||||||
|
i[1] = int(i[1])
|
||||||
|
return compte
|
||||||
|
finally:
|
||||||
|
file.close()
|
||||||
|
|
||||||
|
|
||||||
def echange(l):
|
def echange(l):
|
||||||
"""Algo recursif pour gérer les échanges"""
|
"""Algo recursif pour gérer les échanges"""
|
||||||
@ -65,15 +76,19 @@ def normalise(compte):
|
|||||||
"""Centre en 0 les comptes"""
|
"""Centre en 0 les comptes"""
|
||||||
moyenne = sum([c[1] for c in compte]) / len(compte)
|
moyenne = sum([c[1] for c in compte]) / len(compte)
|
||||||
compte_normalise = compte
|
compte_normalise = compte
|
||||||
|
|
||||||
for (i,n) in enumerate(compte):
|
for (i,n) in enumerate(compte):
|
||||||
compte_normalise[i][1] = compte[i][1] - moyenne
|
compte_normalise[i][1] = compte[i][1] - moyenne
|
||||||
|
|
||||||
return compte_normalise
|
return compte_normalise
|
||||||
|
|
||||||
|
|
||||||
def affiche_final(donRec):
|
def affiche_final(donRec):
|
||||||
"""Affiche qui donne quoi à qui à partir de la liste"""
|
"""Affiche qui donne quoi à qui à partir de la liste"""
|
||||||
for g in donRec:
|
for g in donRec:
|
||||||
print("{don} donne {montant} à {rec}".format(don = g[0], rec = g[1], montant = g[2]))
|
print("{don} donne {montant} à {rec}".format(don = g[0], rec = g[1], montant = g[2]))
|
||||||
|
|
||||||
|
|
||||||
def elimine_seuil(liste, seuil):
|
def elimine_seuil(liste, seuil):
|
||||||
"""Elimine les éléments de la liste qui sont sous le seuil """
|
"""Elimine les éléments de la liste qui sont sous le seuil """
|
||||||
pass
|
pass
|
||||||
@ -84,14 +99,20 @@ def elimine_seuil(liste, seuil):
|
|||||||
# ------------------------------
|
# ------------------------------
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
|
# Pour analyser les options qu'on lui demande
|
||||||
|
parser = optparse.OptionParser()
|
||||||
|
# options proposée
|
||||||
|
parser.add_option("-f","--file",action="store", type = "string", dest="file_name", help="Analyse les comptes à partir du fichier donné en argument")
|
||||||
|
# Digestion
|
||||||
|
(options, args) = parser.parse_args()
|
||||||
|
|
||||||
# État des comptes
|
if options.file_name:
|
||||||
compte = [['bob', 123] , ['pipo', 145] , ['hiphop', 43] , ['dede', 89] , ['chic', 0]]
|
compte = extrait_from_file(options.file_name)[1:]
|
||||||
|
print(compte)
|
||||||
compte_normalise = normalise(compte)
|
compte_normalise = normalise(compte)
|
||||||
# print(compte_normalise)
|
|
||||||
|
|
||||||
final = echange(compte_normalise)
|
final = echange(compte_normalise)
|
||||||
affiche_final(final)
|
affiche_final(final)
|
||||||
|
|
||||||
# ------------------------------
|
# ------------------------------
|
||||||
# Fin du programme
|
# Fin du programme
|
||||||
# ------------------------------
|
# ------------------------------
|
||||||
|
Loading…
Reference in New Issue
Block a user