Ma solution est de créer une liste de tuples (un tuple pour chaque ligne) comme ceci:
(data_in_column_of_interest, entire_line)
Lorsque le data_in_column_of_interest
est un type de données et entire_line
est une chaîne.
puis trier simplement cette liste:
def sortLinesByColumn(readable, column, columnt_type):
"""Returns a list of strings (lines in readable file) in sorted order (based on column)"""
lines = []
for line in readable:
# get the element in column based on which the lines are to be sorted
column_element= columnt_type(line.split(',')[column-1])
lines.append((column_element, line))
lines.sort()
return [x[1] for x in lines]
with open('G:/Ftest/data.txt') as f:
# sort the lines based on column 1, and column 1 is type int
sorted_lines = sortLinesByColumn(f, 1, int)
for l in sorted_lines:
print(l)
Entrée: fichier contenant:
1, Bob, 123
5, Mary, 112
0, Allen, 2421
1, lucy, 341
sortie: une liste de chaînes:
0, Allen, 2421
1, Bob, 123
1, lucy, 341
5, Mary, 112
quel est votre résultat attendu? –
Note de côté: Vous devrez appeler 'import_file.close()' avant de 'return' de la fonction. –