Problème de lecture de fichiers (/forum/sujet/probleme-de-lecture

Listedesforums(/forum/)
WelcometoOpenClassrooms!Byfurthernavigating,youagreetotheuseofcookies.Moreinformation(/privacy-policy#personal-data-
gathering) OK
Accueil(/) Forum(/forum/) Programmation(/forum/categorie/programmation) LangagePython
(/forum/categorie/langage-python) Problèmedelecturedefichiers
Recherchersurleforum
Joalland
(/membre
s/joalland-
61232)
(/membres/joalland-
61232)
Bonjour,
Jedébuteaveclaprogrammationetpythonetj'essaiedefaireunprogrammequilitunfichiertextedata.datede
cetteforme:
avecQA,B,DleAièmequartdel'année,Bl'année,etDunchiffre(nombredeventesenmillion).
JeveuxrécupérerleschiffrescolonneDafindetracerungraphiqueavecmatplotlib.
J'aiplusieurssoucis,jen'arrivepasàcomptertoutseullenombredelignedemonfichierdata.dat...j'aiessa
nbligne=len(donnees.readlines())maisaprèslorsquejelislefichierligneparligne,l'interpréteurresteàlafin
delaligneetdoncmabouclenefonctionnepas.j'aidoncspécifiermonnombredeligne/valeuràlamain
(x=32).
Ensuitejelislefichieravectxt=donnees.readline().rstrip('\n\r').split(",")quimerendunelistedunomtxtetc'est
son3ièmeélémentquim'intéressequejerécupèreavec:million.append(txt[2])cequiajouteàmalistemillion
lenombrequim'intéresseetceuxjusqu'àcequ'onaitparcourutoutesleslignes(break).
Saufqueendébugantavecleshellmonprogrammejetrouvequ'àlapremièreitération,monmilliondevient:
Ducoupj'aicenonequim'embêtepourlasuitecarjen'auraispasunelistecontenantlemêmetypelorsqueje
convertimalistemillion(string)enfloatavecmillion=np.array(million)etmillion.astype(float)
Ducoupmonprogrammemerendl'erreur:
Carenplusdenepasêtredubontype,mavariablemillionestpluslongued'unélémentlenone.
Siquelqu'unpourraitmedonnerdesindicespouravancer,ceseraitsympa.
-
EdiparJoallandilyaenviron14heures
Dan737
(/membre
s/dan737-
25181)
(/membres/dan737-
25181)
Ilexisteunmodulecsv(https://docs.python.org/3.4/library/csv.html#module-csv)danslalibstandard.
Tupourraisécrireuntruccommececipourlirelatroisièmecolonneseulement:
PS:Etcommeaufinaltuveuxutilisernumpy,ilexistegenfromtxt
(http://docs.scipy.org/doc/numpy/reference/generated/numpy.genfromtxt.html)quilituncsvdirectementdansun
numpyarray.
-
EdiparDan737ilyaenviron13heures
Pygametutorielenvidéo(https://www.youtube.com/watch?v=5PvvvVtZNLg&list=PL6it4a6idp54LSy…
Joalland
(/membre
s/joalland-
61232)
(/membres/joalland-
61232)
Bonsoir,mercipourtaréponse.Jedébuteavecpythonetj'aimeraisfairedeschosesunpeufromscratchavant
d'utiliserdeslibs.=)J'avaisfaitquelqueserreursgrossres,voicilacorrection:
maisj'obtiensl'erreurdetypesuivante:
Jenecomprendpasparcequej'aibienconvertilalistedestringenfloat...:/
Joalland
(/membre
s/joalland-
61232)
(/membres/joalland-
61232)
Voilà,çafonctionne.J'airajoutélaconversionenfloatdanslaboucleetçafonctionne.Jenesaispastrop
pourquoicelanemarchaitpasparcontre.:/
Dan737
(/membre
s/dan737-
25181)
Plusieursproblèmesetchosesinutilesdanstoncodeplushaut(celuiquinemarchaitpas).Lafonction astype
prenduntypedenumpy.Doncc'est astype(np.float) .Maissurtoutcetteméthoderetournelanouvelleliste.
Tun'enfaisrientoi.
Regardemoncode,etnotelesdifférences(etlamoindrelongueur)
Problèmedelecturedechiers (/forum/sujet/probleme-de-lecture-de-chiers-1)
Sujetrésolu
1
2
3
4
5
Q3,07,0.27
Q4,07,1.12
...
Q1,15,74.47
Q2,15,61.17
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
frommathimport*
importmatplotlib.mlabasmlab
importmatplotlib.pyplotasplt
importnumpyasnp
#lecturedonnees
donnees=open("data.dat","r")
#àvoirpourchopperlavaleurdexdefonautomatise
x=np.arange(32)
million=[]
forligneindonnees:
txt=donnees.readline().rstrip('\n\r').split(",")
iftxt==['']:
break
else:
million.append(txt[2])
donnees.close()
#Passageversmatplotlib
million=np.array(million)
million.astype(float)
plt.bar(x,million)
plt.show()
1
2
printmillion
(None,['0.27'])
1
2
3
4
5
6
7
8
Traceback(mostrecentcalllast):
File"apple_date.py",line27,in<module>
plt.bar(x,million)
File"/usr/lib/python3/dist-packages/matplotlib/pyplot.py",line2515,inbar
ret=ax.bar(left,height,width=width,bottom=bottom,**kwargs)
File"/usr/lib/python3/dist-packages/matplotlib/axes.py",line5001,inbar
nbars)
AssertionError:incompatiblesizes:argument'height'mustbelength32orscalar
1
2
3
4
5
6
7
8
9
10
importcsv
data=[]
withopen('data.dat','r')ascsvfile:
reader=csv.reader(csvfile,delimiter=',')
forrowinreader:
data.append(float(row[2]))
print(data)
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
frommathimport*
importmatplotlib.mlabasmlab
importmatplotlib.pyplotasplt
importnumpyasnp
#lecturedonnees
donnees=open("data.dat","r")
nbligne=0
million=[0]
forligneindonnees:
txt=ligne.rstrip('\n\r').split(",")
ifnbligne==0:
million[0]=txt[2];nbligne=nbligne+1
iftxt==['']:
break
else:
million.append(txt[2]);nbligne=nbligne+1
donnees.close()
#Passageversmatplotlib/numpy
million=np.array(million)
million.astype(float)
#graphique
x=np.arange(nbligne)
plt.bar(x,million)
plt.show()
1
2
3
4
5
6
7
8
Traceback(mostrecentcalllast):
File"apple_date.py",line30,in<module>
plt.bar(x,million)
File"/usr/lib/python3/dist-packages/matplotlib/pyplot.py",line2515,inbar
ret=ax.bar(left,height,width=width,bottom=bottom,**kwargs)
File"/usr/lib/python3/dist-packages/matplotlib/axes.py",line5039,inbar
ifh<0:
TypeError:unorderabletypes:numpy.str_()<int()
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
frommathimport*
importmatplotlib.mlabasmlab
importmatplotlib.pyplotasplt
importnumpyasnp
#lecturedonnees
donnees=open("data.dat","r")
nbligne=0
million=[0]
forligneindonnees:
txt=ligne.strip("\n\r").split(',')
ifnbligne==0:
million[0]=float(txt[2]);nbligne=nbligne+1
iftxt==['']:
break
else:
million.append(float(txt[2]));nbligne=nbligne+1
donnees.close()
#graphique
x=np.arange(nbligne)
plt.bar(x,million)
plt.show()
Partage  
(/membres/dan737-
25181)
Plusieurschosesànoter:
Onlitunfichieravecuncontextmanager(lewith statement).
Onlitleslignesaveclafonction readlines quis'occupedéjàd'enleverlesretoursàlaligne.
Oninitialiseunelistevide.Jenecomprendspascequetuessayaisdefaireavant.Peuttrelapremière
lignecontientlenomdetescolonnes?
Ontrouvelenombredeligneenregardantaprèslalongeurdenotrelistecréée.
Pygametutorielenvidéo(https://www.youtube.com/watch?v=5PvvvVtZNLg&list=PL6it4a6idp54LSy…
pondre
Problèmedelecturedefichiers
Youwillhavetologinafterclickingon"Answer"topublishyourmessage.
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
#!/usr/bin/envpython
#-*-encoding:utf-8-*-
importmatplotlib.pyplotasplt
importnumpyasnp

#lecturedonnees
withopen("data.dat","r")asf:
donnees=f.readlines()

million=[]

forligneindonnees:
txt=ligne.split(",")
million.append(txt[2])

#Passageversmatplotlib/numpy
million=np.array(million)
million=million.astype(np.float)
#graphique
x=np.arange(len(million))
plt.bar(x,million,align='center')
plt.show()
×
Editeur
Whoweare(/qui-sommes-nous)
Howdoesitwork(/how-does-it-work)
Jobs(/jobs)
Contactus
OpenClassrooms
Business(/business)
Universitiesandschools(/universities)
Professionals
Createacourse(/new-teachers)
Helpustranslate(https://www.transifex.com/organization/openclassrooms)
Affiliation(https://www.affili.net/fr/programmes/arts-culture/formation-et-enseignement/openclassrooms)
Termsandconditions(/terms-conditions/en)
Getinvolved
Ourblog(http://blog.openclassrooms.com/)
(https://www.facebook.com/openclassrooms)(https://twitter.com/openclassrooms)(https://plus.google.com/+OpenClassrooms/posts)(http://instagram.com/openclassrooms)(https://www.youtube.com/user/TheOpenClassrooms)(https://www.linkedin.com/company/openclassrooms)
Followus
  
1 / 2 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !