Bonjour,
Je découvre python et la programmation informatique. Je ne trouve pas la solution et ne comprend pas pourquoi cela ne marche pas.
Si une bonne âme pouvait m'aider...
Voici mon problème:
Je veux lire un fichier csv: et en extraire une liste de dictionnaire:
gpio=[]#liste , indexe liste=n°pine, de dictionnaire représentant le couple :fonction pine et nom pine
mon problème vien de la ligne 28 :gpio[nLigne]=dic
quand je décomente cet ligne la boucle de lecture fait 2 tours puis génère une erreur.
alors qu'a la ligne 27 la ligne print me sort le résulta que je souhaite obtenir??? Qu'est ce que je ne comprend pas, pourquoi ça bloque.
Pour info, j'ai essayé avec csv.DictReader, ça marche mais la mise en forme des donnés ne me convient pas. Et le but n'est pas que cela marche, mais de comprendre pourquoi cela ne marche pas.
gpio.csv
programme test:Code:
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
32
33
34
35
36
37
38
39
40
41 GPIO-PINE;ALIM;IO;WiringPi;I2C;SDIO;JTAG;UART;PCM;1-WIRE;GPCLK 1;3.3V;;;;;;;;; 2;5V;;;;;;;;; 3;;2;8;DATA;;;;;; 4;5V;;;;;;;;; 5;;3;9;CLOCK;;;;;; 6;GND;;;;;;;;; 7;;4;7;;;TDI(ALT5);;;DATA;GPCLK0 8;;14;15;;;;TXD;;; 9;GND;;;;;;;;; 10;;15;16;;;;RXD;;; 11;;17;0;;;;;;; 12;;18;1;;;;;CLK;; 13;;27;2;;DAT3;TMS(ALT4);;;; 14;GND;;;;;;;;; 15;;22;3;;CLK;TRST(ALT4);;;; 16;;23;4;;CMD;RTCK(ALT4);;;; 17;3.3V;;;;;;;;; 18;;24;5;;DAT0;TDO(ALT4);;;; 19;;10;12;;;;;;; 20;GND;;;;;;;;; 21;;9;13;;DAT1;;;;; 22;;25;6;;;TCK(ALT4);;;; 23;;23;14;;;;;;; 24;;8;10;;;;;;; 25;GND;;;;;;;;; 26;;7;11;;;;;;; 27;;0;30;EEPROM DATA;;;;;; 28;;1;31;EEPROM CLOCK;;;;;; 29;;5;21;;;TDO(ALT5);;;;GPCLK1 30;GND;;;;;;;;; 31;;6;22;;;RTCK(ALT5);;;;GPCLK2 32;;12;26;;;TMS(ALT5);;;; 33;;13;23;;;TCK(ALT5);;;; 34;GND;;;;;;;;; 35;;19;24;;;;;FS;; 36;;16;27;;;;;;; 37;;26;25;;DAT2;TDI(ALT4);;DIN;; 38;;20;28;;;;;;; 39;GND;;;;;;;;; 40;;21;29;;;;;DOUT;;
Code:
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
32
33
34
35 import csv, sys filename = 'gpio2.csv' with open(filename, newline='') as f: reader = csv.reader(f,delimiter='\t',quotechar='"', quoting=csv.QUOTE_NONNUMERIC) nLigne = 0 dic={} gpio=[] Entete=[] try: for lig in reader: print (nLigne) if nLigne == 0 : Entete=lig print (Entete) else: # print (lig) dic={} for id in range(len(lig)): #print((id), type(id), type(lig[id])) # print ( id, lig[id]) if id>0 and lig[id]!='': # print (Entete[id]) # print(lig[id]) dic[Entete[id]]= lig[id] # print (lig[0], dic) print(type(nLigne), nLigne, type(dic), dic) # gpio[nLigne]=dic # print(gpio) nLigne = nLigne+1 except csv.Error as e: sys.exit('file {}, line {}: {}'.format(filename, reader.line_num, e))