Vous pouvez convertir une chaîne en objet fichier en utilisant io.StringIO
, puis la transmettre au csv
module:
from io import StringIO
import csv
scsv = """text,with,Polish,non-Latin,letters
1,2,3,4,5,6
a,b,c,d,e,f
gęś,zółty,wąż,idzie,wąską,dróżką,
"""
f = StringIO(scsv)
reader = csv.reader(f, delimiter=',')
for row in reader:
print('\t'.join(row))
version plus simple avec split()
sur les nouvelles lignes:
reader = csv.reader(scsv.split('\n'), delimiter=',')
for row in reader:
print('\t'.join(row))
Ou vous pouvez simplement split()
cette chaîne en lignes en utilisant \n
comme séparateur, puis split()
chaque ligne en valeurs, mais de cette façon, vous devez être conscient des guillemets, il csv
est donc préférable d' utiliser le module.
Sur Python 2, vous devez importer en StringIO
tant que
from StringIO import StringIO
au lieu.
.split('\n')
, vous pouvez utiliser.splitlines()
.Simple - le module csv fonctionne également avec les listes:
la source
.split('\n')
cela fera des choses étranges si vos champs contiennent des nouvelles lignes.La documentation officielle pour
csv.reader()
https://docs.python.org/2/library/csv.html est très utile, ce qui ditla source
Pour analyser un fichier CSV:
la source
3, "4,5,6, 6
-à- dire qu'elle sera traitée comme trois champs au lieu de cinq.Comme d'autres l'ont déjà souligné, Python inclut un module pour lire et écrire des fichiers CSV. Cela fonctionne assez bien tant que les caractères d'entrée restent dans les limites ASCII. Si vous souhaitez traiter d'autres encodages, des travaux supplémentaires sont nécessaires.
La documentation Python du module csv implémente une extension de csv.reader, qui utilise la même interface mais peut gérer d'autres encodages et renvoie des chaînes Unicode. Copiez et collez simplement le code de la documentation. Après cela, vous pouvez traiter un fichier CSV comme ceci:
la source
'utf-8-sig'
comme codec au lieu de'utf-8'
.Selon la documentation:
Transformez simplement votre chaîne en une seule liste d'éléments.
L'importation de StringIO me semble un peu excessive lorsque cet exemple est explicitement dans la documentation.
la source
https://docs.python.org/2/library/csv.html?highlight=csv#csv.reader
Ainsi, un
StringIO.StringIO()
,str.splitlines()
ou même un générateur sont tous bons.la source
Voici une solution alternative:
Voici la documentation
la source
Utilisez ceci pour charger un csv dans une liste
la source
Panda est une bibliothèque assez puissante et intelligente de lecture de CSV en Python
Un exemple simple ici, j'ai un fichier example.zip avec quatre fichiers.
Une fois que vous avez des données, vous pouvez les manipuler pour jouer avec une liste ou d'autres formats.
la source