2013-07-03 6 views
1

tout le monde Hy,Python: éditer plusieurs fichiers: boucle sur une liste de fichiers

J'ai des milliers de trois colonnes fichiers .csv Ascii avec ce format:

"1;6774.64;210.00" 

je voudrais les transformer en faire une liste que je peux modifier en python comme ceci:

[6774,64, 210,00]

J'ai starded d'essayer de faire une importation comme:

p = open('ruby-Ne008.csv') 
linelist = [line for line in p.readlines()] 

mais comment retirer le «caractère, et remplacer le; caractère en tant que séparateur de colonne.

merci!

Répondre

2

Quelque chose comme ceci:

>>> import csv 
>>> from itertools import chain 
>>> with open('ruby-Ne008.csv') as f: 
    reader = csv.reader(f, delimiter = ';') 
    lis = list(chain.from_iterable(map(float,row[1:]) for row in reader)) 
    print lis 
...  
[6774.64, 210.0] 
+0

Pour plus de clarté et de lisibilité du code je proposerais maintenant il suffit d'utiliser 'row' mais les vraies significations des valeurs, e. g .: 'list (chain.from_iterable ([float (height), float (width)] pour le nombre, la hauteur, la largeur dans le lecteur))' (Mais bien sûr, nous ne connaissons pas les noms, donc c'est au demandeur .) – Alfe

+0

merci !! ça marche bien maintenant! –

1

linelist = [[float(x) for x in line.split(';')[1:]] for line in p.readlines()]

Est-ce suffisant?

Questions connexes