Bonsoir
J'ai créé un programme qui récupère des données provenant d'un fichier texte qui contient plusieurs valeurs 10 colonnes et 63 lignes. Les données sont des nombres mais lorsque je les copie dans ma liste, Python les prend pour des chaînes de caractères. Donc je ne peux pas les afficher en faisant un "plot". Après je dois comparer tout les valeurs de la liste avec une consigne et les séparer dans deux tableaux .
Quelqu'un saurait comment faire pour corriger ce problème?
Voila la commande que j'ai utilisée pour lire les valeurs de mon fichiers txt
import os
os.chdir("C:")
os.chdir("C:/Python27")
fichier = open('.../Python27/Ligne10.txt','rb')
fichier
I = [""]*1
for i ,ligne in enumerate ( fichier):
I.append(ligne)
del(I[0])
print "I",j,"=",I
Merci
A voir également:
Transformer une liste en chaine de caractère python
Convertir une liste en chaine de caractère python - Meilleures réponses
Python transformer une liste en chaine de caractère - Meilleures réponses
dI[i]+I = SOM1
> ça ne peut pas fonctionner.
L'affectation c'est toujours dans l'ordre suivant
la_variable_a_affecter = .... une valeur, ou un calcul.
Pour l'erreur
File "C:\Documents and Settings\Admin\Bureau\Basma\range\projet\input5.py", line 49, in <module>
dI[i]+SIav[i]==SOMav[i]
... il n'y a pas le code correspondant, mais un indexError arrive lors que tu veux accéder à un élément qui n'existe pas.
Vérifie la taille de tes listes, et la valeur de ta variable i.
Bonsoir,
j'ai une autre question je fais comment pour écrire une liste dans un fichier txt une liste de ce genre
I1=[200,300,400,345]
I2=[290,300,400,345]
I2=[200,307,498,345]
I2=[200,300,400,345]
mercii beaucoup, la je dois lire ce fichier txt
"5.";"100.";"120.";"80."
"10.";"200.";"220.";"180."
"15.";"300.";"320.";"280."
"25.";"400.";"420.";"380."
et apres je dois comparer les differentens valeur ,j'ai realisé ce programme mais je ne sais pas comment faire pr convertir les données en entier
#Ouverture du fichier source
import os
path = "C:/Documents and Settings/Admin/Bureau/Basma/range"
os.chdir(path)
#Importer un fihier texte
ca marche pas j'ai eu cette erreur
Traceback (most recent call last):
File "C:\Documents and Settings\Admin\Bureau\Basma\range\projet\input2.py", line 17, in <module>
listEntier = [int(x.replace('.', '')) for x in row]
ValueError: invalid literal for int() with base 10: '0000000000\t14250000000\t259900000000\t258321052632\t14713548387\t13783935484\t-6741935484\t-9009677419\t40344546381\t46095820591\t26721712538\t21742132781\t-11502548420\t9959159515\t334925173024\t228275277644\t10664'
>>>
j'ai obtenu cette liste :
5.
100.
120.
80.
10.
200.
220.
180.
15.
300.
320.
280.
25.
400.
420.
380.
mais la je ne sais pas comment faire pour les stocker dans des tableaux par exemple crée 4 tableaux le 1er contient les valeur suivant 5. 10. 15. 20.
j'ai essayé avec la fonction append mais j'ai cette erreur 18, in <module>
append.elt
NameError: name 'append' is not defined
Je ne sais pas exactement ce que tu veux faire avec tes tableaux, mais pour utiliser append, il faut que la liste soit définie avant d'utiliser un append.
en fait je veux crée 4 tableaux chaqu'un contient les valeur suivant:
T1=[5.,10.,15.,20.]
T2=[100.,200.,300.,400.]
T3=[15.,300.,320.,420.]
T4=[80.,180.,280.,380.]
car j'ai une autre liste de ce genre
I=[477,0.8,1.04,-0.015]
apres je dois comparé par exemple I[0] avec T1[0]+T2[0]
voila ce que j avais fai jusqu'a mtn
#Ouverture du fichier source
import os
path = "C:/Documents and Settings/Admin/Bureau/Basma/range/projet"
#Importer un fihier texte
list1=[]
list1m=[]
fichier = open('./range.txt','r')
import csv, math
fichiercsv = csv.reader(fichier, delimiter=';')
f = open('./indicateurs.csv','r')
fcsv = csv.reader(f, delimiter=';')
for row in fichiercsv:
for elt in row:
list1.append(elt)
print list1
Si tu veux avoir des valeurs entiers (et non des string) dans tes tableaux, il faudrait que tu
remplace les .append(monelement) par des .append(int(monelement)) ou éventuellement .append(int(str(monelement))
fichier = open('./range.txt','r')
import csv, math
fichiercsv = csv.reader(fichier, delimiter=';')
f = open('./indicateurs.csv','r')
fcsv = csv.reader(f, delimiter=';')
for row in fichiercsv:
for elt in row:
list1.append(elt)
while i<len(list1):
dI.append(list1[i])
SIav.append(list1[i+1])
SIst.append(list1[i+2])
SIar.append(list1[i+3])
i=i+4
print "dI:",dI
print "SIav:",SIav
print "SIst:",SIst
print "SIar:",SIar
for row in fcsv:
for elt in row:
list2.append(elt)
while j<len(list2):
I.append(list2[j])
j=j+3
print "Indicateur",p,":", I
p=p+1
I=[]
le résultat c'est ca :
dI: ['5.', '10.', '15.', '25.']
SIav: ['100.', '200.', '300.', '400.']
SIst: ['120.', '220.', '320.', '420.']
SIar: ['80.', '180.', '280.', '380.']
Indicateur 1 : ['477.791740950']
Indicateur 2 : ['0.841427227']
Indicateur 3 : ['1.040212404']
Indicateur 4 : ['-0.011527567']
alors la me reste de faire la somme des dI[0]avec Indicateur 1 , et dI[1]+Indicateur 2...
mais la quand j'ai essayé de faire ca
dI[i]+I = SOM1
j'ai eu cette erreur
Traceback (most recent call last):
File "C:\Documents and Settings\Admin\Bureau\Basma\range\projet\input5.py", line 49, in <module>
dI[i]+SIav[i]==SOMav[i]
IndexError: list index out of range
j'espère que je ne vous derange pas trop :)
j'ai essayé de faire ca juste pour la 1er ligne
SOMav=dI[0]+SIav[0]
print SOMav
le resultat c'est ca:
dI: ['5.', '10.', '15.', '25.']
SIav: ['100.', '200.', '300.', '400.']
SIst: ['120.', '220.', '320.', '420.']
SIar: ['80.', '180.', '280.', '380.']
Indicateur 1 : ['477.791740950']
Indicateur 2 : ['0.841427227']
Indicateur 3 : ['1.040212404']
Indicateur 4 : ['-0.011527567']
5.100.
mais moi ce que je veux c'est la somme de 5. et 100. c'est a dire 105. je fais comment pour avoir ca?
Bonjour,
j'ai besoin de votre aide la j'ai besoin de lire les parametre d'un fichier txt de ce genre :( I1="Cédage global de la cage ou des colonnes"
E1="Indicateur représentatif au point de fonctionnement standard le plus couramment utilisé (tf/mm)"
I2="Cédage global de la cage ou des colonnes"
E2="Indicateur représentatif des non linéarités liées à la déformation des éléments de contacts à surface variable pour les faibles efforts de laminage (s.u.)"
I3="Cédage global de la cage ou des colonnes"
E3="Indicateur représentatif du comportement mécanique de la cage aux efforts élevés de laminage (s.u.)"
I4="Indicateur représentatif du comportement différentiel mécanique cage F_Kelk"
E4="tout en s'affranchissement de l'évolution des variations "globales" transposées symétriquement (s.u.)"
I5="Indicateur représentatif du comportement différentiel mécanique cage F_Kelk"
E5="co-structuré par rapport à l'indicateur I4 en intégrant en complément le diagnostic sur le différentiel réel de serrage (s.u.)"
I6="Indicateur représentatif du comportement différentiel mécanique cage F_HGC"
E6="Equivalent à l'indicateur)
et d'afficher par exemple I1 ="" et ensuite afficer I2=""