Boucle infini / erreur d’écriture.
Bonjour à tous 8-)
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. :aie:
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 8-)
Code:
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:
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 !