Bonjour,
J'ai une série de fichiers texte que je dois traiter pour créer des courbes et faire des calculs en PYTHON. Ces fichiers texte sont des listes de données (valeurs décimales avec des VIRGULES) séparées par des espaces, qui sont de la forme 1,75892 135,89526 54,8560 .
J'ai réussi à dans un premier temps récupérer les données et les transformer en fichier csv (mais pas à les réécrire et les enregistrer dans le fichier source). Et dans un deuxième temps remplacer les virgules par des points. Cependant je n'ai pas réussi à effectuer les deux actions à la suite car elles ne s'appliquent pas aux mêmes types (type liste et type csv ?).
Merci de votre aide précieuse
Voici un bout des codes :
Code:# Lecture des fichiers texte en CSV # importer les modules import csv, math, numpy # ouvrir et lire le fichier concerne fichier ="fichier.txt" fichier_lire=open(fichier,"rb") # modifier le fichier en csv et fixer le delimiteur fichier_csv = csv.reader(fichier_lire,delimiter=" ") # creer une matrice tab=list(fichier_csv) # renvoie une valeur de la matrice : tab[Num?ro ligne][Num?ro colonne] print type(tab), ("\n\n") #d?termine le nombre de ligne ( taille de la matrice nbL*2 NB:0,1,2) nbL=0 # initialisation du nombre de ligne # row correspond ? une ligne, type list, row affiche la totalit?, row[x] affiche la premi?re valeur de la ligne for row in fichier_csv: print row nbL=nbL+1 # calcul du nombre de lignes dans le fichier texte for i in range(nbL): for j in range(2): tab[i][j]=tab[i][j].replace(".",",") print tab[1][1], type(tab) '''contenu=fichier_csv.read() # creation d'un index pour le remplacement de la virgule par le point pour la lecture des nombres index={',':'.'} # remplacement puis affichage for cle in index: contenu=contenu.replace(cle,index[cle]) print contenu[0] # correspond ? 1 chaine continu (type str)''' ################################################################################### # ecrire le contenu dans le fichier source valeur=[] '''#for ligne in row: #valeur.append(row) #taille2=taille2+1 # pour chaque ligne du fichier, transformer le type str en numpy str # imprimer la 1ere valeur de la premi?re colonne : print valeur[0] valeur= numpy.array() donnees = [] for ligne in fichier_csv: donnees.append(ligne) # extraire la premiere colonne et multiplier par pi for ligne in fichier_csv: if ligne: valeur = float(ligne[0])''' fichier_lire.close() ######################################################## # ouvrir et lire le fichier concerne fichier ="fichier.txt" fichier_lire=open(fichier,"rb") #fichier_ecrire=open(fichier,"wb") contenu=fichier_lire.read() # creation d'un index pour le remplacement de la virgule par le point pour la lecture des nombres index={',':'.'} # remplacement puis affichage for cle in index: contenu=contenu.replace(cle,index[cle]) print contenu[0] # correspond ? 1 chaine continu (type str) # modifier le fichier en csv et fixer le delimiteur fichier_csv = csv.reader(fichier_lire,delimiter=" ") for ligne in new_fichier: new_fichier = csv.writer(contenu) taille1=0 taille2=0 valeur=[] for row in fichier_csv: print row #for ligne in row: #valeur.append(row) #taille2=taille2+1 # pour chaque ligne du fichier, transformer le type str en numpy str # imprimer la 1ere valeur de la premi?re colonne : print valeur[0]
.
-----