[PYTHON] Script plusieurs fichiers en entré
Benj
-
Benj -
Benj -
Bonjour, j'ai fait un très petit programme, il permet de traiter des fichiers, du moins un fichier. Je voudrais qu'il travail sur tous les fichiers du dossier portant l'extension .DAT, et qu'il ecrive la sortie en reprenant le nom de fichier en entré et en rajoutant l'extension .sql par exemple :) code source :
Je suis a votre disposition pour des questions ou remarques ou applaudissements,
Cordialement benj :)
#!/user/bin/python
#ouverture des fichiers
fichier = open("benj.txt","r") #fichier d'entrée
fichierout = open("pythoncarox.txt","w") #fichier de sortie
lignedeformat=fichier.readline() #recupération de la premiere ligne
lignedeformat2=lignedeformat.split(',') #transformation en list, chaque champ étant séparé par une virgule
i=0 #compteur
debutchamp=1 #dans la premiere ligne, le numero de debut de champ est indiqué au 2eme caractere
finchamp=2 #le numero de fin au 3eme caractere
listindex = [] #liste pour stocker les debuts et fin de chaques champs
while i < 46: #il y a 46 champs
finindex=int(lignedeformat2[finchamp])
debutindex=int(lignedeformat2[debutchamp])-1
listindex.append(debutindex)
listindex.append(finindex)
debutchamp=debutchamp+4 #le numero est indiqué 4 champs plus loin
finchamp=finchamp+4
i=i+1
for ligne in fichier: #pour les lignes restantes
i=0
u=0 #u permet selectioner dans la liste la paire d'indice definissant le debut et la fin
while i < 46:#pour les 46 champs des lignes
fichierout.write(",")#on precede chaque champs d'une virgule
fichierout.write(str(ligne[listindex[u]:listindex[u+1]]))#on ecrit la valeur d'un champ
u=u+2
i=i+1
fichierout.write("\n") #saute de ligne a chaque ligne traité
fichier.close()
fichierout.close()
Je suis a votre disposition pour des questions ou remarques ou applaudissements,
Cordialement benj :)
A voir également:
- Lire plusieurs fichiers python
- Lire le coran en français pdf - Télécharger - Histoire & Religion
- Lire fichier epub - Guide
- Lire fichier bin - Guide
- Lire fichiers rar - Guide
- Renommer plusieurs fichiers en même temps - Guide
2 réponses
Exact, je te remerci, ca marche :)
Script bash 20min
Python 1sec
code au cas ou ca peut servir :
Script bash 20min
Python 1sec
code au cas ou ca peut servir :
#!/user/bin/python
#-*- coding : utf-8 -*-
import os, sys, glob
for filename in glob.glob('*.DAT'):
#ouverture des fichiers
fichier = open(filename,"r") #fichier d'entree
resultfilename = os.path.splitext(filename)[0]+'.sql'
fichierout = open(resultfilename,"w") #fichier de sortie
lignedeformat=fichier.readline() #recuperation de la premiere ligne
lignedeformat2=lignedeformat.split(',') #transformation en list, chaque champ etant separe par une virgule
i=0 #compteur
debutchamp=1 #dans la premiere ligne, le numero de debut de champ est indique au 2eme caractere
finchamp=2 #le numero de fin au 3eme caractere
listindex = [] #liste pour stocker les debuts et fin de chaques champs
while i < 46: #il y a 46 champs
finindex=int(lignedeformat2[finchamp])
debutindex=int(lignedeformat2[debutchamp])-1
listindex.append(debutindex)
listindex.append(finindex)
debutchamp=debutchamp+4 #le numero est indique 4 champs plus loin
finchamp=finchamp+4
i=i+1
for ligne in fichier: #pour les lignes restantes
i=0
u=0 #u permet selectioner dans la liste la paire d'indice definissant le debut et la fin
while i < 46:#pour les 46 champs des lignes
fichierout.write(",")#on precede chaque champs d'une virgule
fichierout.write(str(ligne[listindex[u]:listindex[u+1]]))#on ecrit la valeur d'un champ
u=u+2
i=i+1
fichierout.write("\n") #saute de ligne a chaque ligne traite
fichier.close()
fichierout.close()