Cela répond à la question technique directe:
lst = [line[6:17] for line in open(fname)]
mais il y a une erreur fatale. C'est correct pour le code jetable, mais cette donnée ressemble étrangement à des valeurs séparées par des virgules, et le troisième champ peut même être constitué de blocs de données délimités par des espaces. Il vaut bien mieux le faire comme cela pour que si les deux premières colonnes germent un chiffre supplémentaire, il fonctionne toujours:
lst = [x[2].strip()[0:11] for x in [line.split(',') for line in open(fname)]]
Et si ces morceaux séparés par des espaces pourraient obtenir plus, alors ceci:
lst = [x[2].strip().split()[0:2] for x in [line.split(',') for line in open(fname)]]
Ne pas oublier un commentaire ou deux pour expliquer ce qui se passe. Peut-être:
# on each line, get the 3rd comma-delimited field and break out the
# first two space-separated chunks of the licence key
En supposant, bien sûr, que ce sont des clés de licence. Pas besoin d'être trop abstrait dans les commentaires.
En fait, il devrait être [6:17]. +1 pour la version du générateur! – ema
@ema, à droite! Merci pour la correction –