Bonjour à tous

Je suis entrain de découvrir python dans le cadre de mon travail... C'est surtout le seul langage exécutable sur ma machine... alors c'est l’occasion d'apprendre.

Je cherche a faire une moulinette qui va permettre de découper un fichier en plusieurs sous fichier en fonction d'une valeur en début de chaque ligne.

Actuellement, je suis bloqué sur la fin du traitement... En effet le découpage se passe pas trop mal... Sauf pour le dernier fichier.
La boucle semble bloqué ! Le fichier est crée mais vite !!
Ne connaissant pas encore suffisamment les outils de debug... je m'en réfère à vous

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
file = "LLOC_TEST.txt"
insee = ""
current = ""
 
print("----| lecture du fichier : " + file + " |----")
f = open(file, "r")
 
while 1 :
    data = f.readline()
    if not data :
        break
    insee = data[0:6]
 
    # Création du fichier avec ecriture des lignes
    if current != insee :
        print("--> création du fichier : " + insee + ".txt")
        foutput = open(insee+".txt", "a")
        current = insee
 
    print("> écriture de la ligne : " + data.rstrip())
    foutput.write(data)
Exmple de fichier a découper :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
950074          BOISEMONT   
950074    B0771001000010210950074   074064530000002030001000
950074    B0771001000010310950074   074064418800002430001000
950074    B0771001000020110950074   074064530100000230001000
950074    B0771001000020210950074   074064419100000240001000
950074    B0771001000030110950074   074064418800000160001000
950074    B0771001000030210950074   074064530100000100001000
950074    B0771001000030310950074   074064530100000100001000
950074    B0771001000030410950074   074064605600000100001000
950074    B0771001000030510950074   074064605600000100001000
950127          CERGY                                       
950127   AE0249001000000110950127   127053175600003540001000
950127   AE0249001000000210950127   127053175700003090001000
950127   AE0249001000000310950127   127053175800003010001000
950127   AE0249001000000410950127   127053175800000360001000
950127   AH0038001000000110950127   127055996700003000001000
950127   AH0038001000000210950127   127056884700002800001000
950127   AH0038001000000210950127   127056884800002800001000
950388          MENUCOURT                                   
950388    A0082001000000110950388   388054469400000850001000
950388    A0082001000000210950388   388056272100009150001000
950388   AB0018001000000110950388   388026830600000750010000
950388   AB0018001000000210950388   388026830800000750010000
950637          VAUREAL                                     
950637   AB0021001000000110950637   637004568700000750003000
950637   AB0021001000000210950637   637004568500001920003000
950637   AB0021001000000310950637   637004568600004830003000
950637   AB0021001000000410950637   637004568900000690003000
950637   AB0021001000000510950637   637004568800003540003000
950637   AB0021001000000610950637   637004569000000780003000
950637   AB0021001000000710950637   637004569100003930003000
950637   AB0021001000000810950637   637004569200000300003000
950637   AB0021001000000910950637   637004568500000030003000
950637   AB0021001000001010950637   637004569100000090003000
950637   AB0021001000001110950637   637004568800000120003000
950637   AB0021001000001210950637   637004568600000180003000
950637   AB0021001000001610950637   637004569300000360003000
950637   AB0021001000001710950637   637004569400000450003000
950637   AB0021001000001810950637   637004569500000450003000
950637   AB0021001000001910950637   637004569600000450003000
Certains d'entre vous devrait bien avoir une petite idée... mais moi je cherche et je séche !