1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105
|
# coding: utf-8
import datetime
import csv
def convertie_date(src):
if src =='':
valid_date = None
else:
#0123456890
#2017-02-01
#2017/02/01
alpha_aaaa = int(src[0:4])
alpha_mm = int(src[5:7])
alpha_jj = int(src[8:11])
try :
valid_date = datetime.date(alpha_aaaa,alpha_mm,alpha_jj)
return valid_date
except ValueError:
print('%s Date invalide !' % src)
return None
class Base_Trx(object):
rang = 0
def __init__(self,PRT,GT,ORDRE,MODULE,DT_DB_PRT,DT_FN_PRT,DT_DB_GT,DT_FN_GT):
self.rang += 1
self.PRT = PRT
self.GT = GT
self.ORDRE = ORDRE
self.MODULE = MODULE
self.DT_DB_PRT = convertie_date(DT_DB_PRT)
self.DT_FN_PRT = convertie_date(DT_FN_PRT)
self.DT_DB_GT = convertie_date(DT_DB_GT)
self.DT_FN_GT = convertie_date(DT_FN_GT)
def __str__(self):
resulta = "Indexe:" + str(self.rang ) + "\n"
resulta += "PRT :" + str(self.PRT ) +"\n"
resulta += "GT :" + str(self.GT ) +"\n"
resulta += "ORDRE :" + str(self.ORDRE ) +"\n"
resulta += "MODULE :" + str(self.MODULE ) +"\n"
resulta += "DT_DB_PRT :" + str(self.DT_DB_PRT ) +"\n"
resulta += "DT_FN_PRT :" + str(self.DT_FN_PRT ) +"\n"
resulta += "DT_DB_GT :" + str(self.DT_DB_GT ) +"\n"
resulta += "DT_FN_GT :" + str(self.DT_FN_GT ) +"\n"
return resulta
def __csv_donnee__(self):
return [self.PRT,self.GT,self.ORDRE,self.MODULE,self.DT_DB_PRT,
self.DT_FN_PRT,self.DT_DB_GT, self.DT_FN_GT]
def __csv_entete__(self):
return ["PRT","GT","ORDRE","MODULE","DT_DB_PRT","DT_FN_PRT","DT_DB_GT","DT_FN_GT"]
def csv_donnee(self, nomfichier):
ecrire_csv = csv.writer(nomfichier, delimiter = ';') # Codage du fichier csv délimiter de champ
ecrire_csv.writerow(self.__csv_donnee__()) # donnée
def csv_entete(self,nomfichier):
ecrire_csv = csv.writer(nomfichier, delimiter = ';') # Codage du fichier csv délimiter de champ
ecrire_csv.writerow(self.__csv_entete__()) # donnée
def lire_csv(self,nomfichier):
lire_csv = csv.reader(nomfichier, delimiter = ';') # Codage du fichier csv délimiter de champ
self.rang += 1
self.PRT = lire_csv[0]
self.GT = lire_csv[1]
self.ORDRE = lire_csv[2]
self.MODULE = lire_csv[3]
self.DT_DB_PRT = convertie_date(lire_csv[4])
self.DT_FN_PRT = convertie_date(lire_csv[5])
self.DT_DB_GT = convertie_date(lire_csv[6])
self.DT_FN_GT = convertie_date(lire_csv[7])
class Les_Base_Trx(object):
def __init__(self):
self.Des_Base_Trx= list()
def __str__(self):
listeBase_Trx =""
for un_Base_Trx in self.Liste_de_Base_Trx:
if(listeBase_Trx=="" ):
listeBase_Trx= str(un_Base_Trx)
else:
listeBase_Trx+= "/n/n" + str(un_Base_Trx)
def ajouter(self, Base_Trx):
""" Ajouter de l'objet issus du csv"""
self.Des_Base_Trx.append(Base_Trx)
def charger(self,nomfichier):
nb_ligne =0
with open(nomfichier, 'r', newline='') as fichier:
lire_fichier = csv.reader(fichier, delimiter = ';') # Codage du fichier csv délimiter de champ
for ligne in lire_fichier:
print(ligne)
if(nb_ligne!=0):
self.ajouter(Des_Base_Trx.lire_csv(nomfichier))
nb_ligne+=1 |
Partager