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 106 107 108 109 110
| import string
import sys
def convertir(src, decimal, format):
"""Fonction de traitement.
Convertion floattant en chaine version française
"""
cor_decimal = 10.0 ** decimal
n_src = float(src)
n_src = n_src / cor_decimal
resultat = format % n_src
resultat = resultat.strip()
resultat = resultat.replace('.', ',')
return resultat
pass
def filtrer(src, dst):
"""Fonction de traitement.
Lit et traite ligne par ligne le fichier source (src).
pour compos? le fichier csv (dst).
Est ajouter la convertion
"""
# l entete
dst.write("FLNPS;FLNSS;FLRBEN;FLNFAC;FLNPRE;FLDNAI;FLDSOI;FLACTE;FLQTEA;FLCOEF;"
"FLDENO;FLMPUN;FLMDEP;FLTMSS;FLMRSS;FLMRAD;FLMRMU;FLDTRT;FLNOM;FLPREN;FLNOCT;FLNPEC;FLNADH"
"FLDSAI;FLDCGR;FLCCAI;FLCCEN\n")
# lecture des donnees
for ligne in src:
FLTENR = ligne[0:1]
FLNPS = ligne[1:10]
FLZEXT = ligne[11:11]
FLNSS = ligne[11:26]
FLRBEN = ligne[26:29]
FLNFAC = ligne[29:38]
FLFIL1 = ligne[43:43]
FLNPRE = ligne[43:52]
FLDNAI = ligne[52:58]
FLCCIP = ligne[59:59]
FLDFAC = ligne[59:65]
FLFIL2 = ligne[65:69]
FLDSOI = ligne[69:75]
FLACTE = ligne[75:80]
FLQTEA = ligne[80:82]
FLFIL4 = ligne[82:83]
FLCOEF = ligne[83:88]
FLCOEF_N = convertir(FLCOEF, "%5.0f")
FLDENO = ligne[88:90]
FLDENO_N = convertir(FLDENO, "%2.0f")
FLMPUN = ligne[90:97]
FLMPUN_N = convertir(FLMPUN, "%7.2f")
FLMDEP = ligne[97:104]
FLMDEP_N = convertir(FLMDEP, "%7.2f")
FLTMSS = ligne[104:107]
FLTMSS_N = convertir(FLTMSS, "%3.0f")
FLMRSS = ligne[107:114]
FLMRSS_N = convertir(FLMRSS, "%7.2f")
FLMRAD = ligne[114:121]
FLMRAD_N = convertir(FLMRAD, "%7.2f")
FLMRMU = ligne[121:128]
FLMRMU_N = convertir(FLMRMU, "%7.2f")
FLUSER = ligne[128:138]
FLDTRT = ligne[138:146]
FLNMUT = ligne[146:149]
FLNOM = ligne[149:174]
FLPREN = ligne[174:189]
FLNLOT = ligne[189:192]
FLNOCT = ligne[192:195]
FLNPEC = ligne[195:211]
FLLIGN = ligne[211:215]
FLNADH = ligne[215:223]
FLDSAI = ligne[223:231]
FLDCGR = ligne[231:233]
FLCCAI = ligne[233:236]
FLCCEN = ligne[236:240]
FLNASS = ligne[242:242]
FLDPRE = ligne[242:248]
FLNIDU = ligne[248:258]
FLIDFI = ligne[258:264]
FLTYNR = ligne[264:268]
FLVENR = ligne[268:270]
FLNUMD = ligne[270:285]
FLLGID = ligne[285:291]
FLSPPR = ligne[291:293]
FLSPEX = ligne[293:295]
FLZTAR = ligne[295:297]
FLNPSG = ligne[297:306]
dst.write("%s;%s;%s;%s;%s;%s;%s;%s;%s;%s;%s;%s;%s;%s;%s;%s;%s;%s;%s;%s;%s;%s;%s;%s;%s;%s;%s;%s\n" %
(FLNPS, FLNSS, FLRBEN, FLNFAC, FLNPRE, FLDNAI, FLDSOI, FLACTE, FLQTEA, FLCOEF_N
, FLDENO_N, FLMPUN_N, FLMDEP_N, FLTMSS_N, FLMRSS_N, FLMRAD_N, FLMRMU_N, FLDTRT, FLNOM, FLPREN,
FLNOCT, FLNPEC, FLNADH, FLDSAI, FLDCGR, FLCCAI, FLCCEN))
pass # Ouverture du fichier source
source = open("Total-Flux_Non_Traitable_Flunet.txt", "r")
# Ouverture du fichier destination
destination = open("Total-Flux_Non_Traitable_Flunet.csv", "w")
try:
# Appeler la fonction de traitement
filtrer(source, destination)
finally:
# Fermeture du fichier destination
destination.close()
# Fermerture du fichier source
source.close() |