Désolé d'ouvrir un énième fil sur les fichiers csv mais je ne parviens pas à mes fins.

Voici le début de mon code :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
with open('class1.csv',newline='') as mon_fichier:
    global liste2
    liste2 = list(csv.reader((mon_fichier),dialect='excel',delimiter='\t',lineterminator='\n'))
 
print(liste2)
Voici ce que j'obtiens :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
[['AAA,aaa,,NC'], ['BBB,bbb,165.45'], ['CCC,ccc,'], ['DDD,ddd,151.04'], ['EEE,eee,200.02']]
Je souhaiterais trier les lignes par ordre décroissant en fonction de la dernière colonne (qui parfois n'est pas remplie ou contient une chaîne : à la limite, je peux la remplir avec des 0 si besoin).
Le tableau csv contient environ 120 lignes et 29 colonnes (c'est donc par colonne[28] que je souhaite effectuer le tri) et je souhaiterais enregistrer le résultat trié dans un autre fichier csv (ou une autre feuille du classeur).

J'ai essayé un peu de tout, notamment :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
import operator
liste_triee = sorted(liste2, key=operator.itemgetter(2), reverse = True)
print(liste_triee)
Mon souci est au niveau des éléments car le code suivant fonctionne très bien :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
import csv
import operator
 
with open('essai-tri.csv',newline='') as mon_fichier:
    global liste2
    liste2 = list(csv.reader((mon_fichier),dialect='excel',delimiter='\t',lineterminator='\n'))
 
liste3=[]
for i in range(1,len(liste2)):
    liste3.append(liste2[i])
print(liste3)
 
liste_triee = sorted(liste3, key=operator.itemgetter(4), reverse = True)
print(liste_triee)
et donne le résultat :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
[['jhh', '1', '2', '3', 'NC'], ['jfk', '5', '7', '9', '5'], ['jhfh', '6', '4', '8', '3'], ['kiol', '7', '4', 'j', '2'], ['jui', '5', '4', '4', '8']]
[['jhh', '1', '2', '3', 'NC'], ['jui', '5', '4', '4', '8'], ['jfk', '5', '7', '9', '5'], ['jhfh', '6', '4', '8', '3'], ['kiol', '7', '4', 'j', '2']]
C'est donc uniquement le problème de la remise à plat des listes, je pense.
Fatigué peut-être, je tourne en rond, sans être avare de "print(...)" !