[PYTHON] Script plusieurs fichiers en entré

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 :

#!/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 :)
Configuration: Windows 2000
Internet Explorer 6.0

2 réponses

  1. utilise ceci:

    import glob

    list_files = glob.glob('*.dat')
    2
    1. Exact, je te remerci, ca marche :)

      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()
      
      2

      Discussions similaires

      question pix mot caché

      7 réponses