130 votes

Comment lire une seule ligne de données csv en Python ?

Il existe de nombreux exemples de lecture de données csv à l'aide de python, comme celui-ci :

import csv
with open('some.csv', newline='') as f:
  reader = csv.reader(f)
  for row in reader:
    print(row)

Je veux seulement lire une ligne de données et l'entrer dans différentes variables. Comment dois-je m'y prendre ? J'ai cherché partout un exemple fonctionnel.

Mon code ne récupère que la valeur de i, et aucune des autres valeurs.

reader = csv.reader(csvfile, delimiter=',', quotechar='"')
for row in reader:
  i = int(row[0])
  a1 = int(row[1])
  b1 = int(row[2])
  c1 = int(row[2])
  x1 = int(row[2])
  y1 = int(row[2])
  z1 = int(row[2])

173voto

Ashwini Chaudhary Points 94431

Pour lire uniquement la première ligne du fichier csv, utilisez next() sur l'objet lecteur.

with open('some.csv', newline='') as f:
  reader = csv.reader(f)
  row1 = next(reader)  # gets the first line
  # now do something here 
  # if first row is the header, then you can do one more next() to get the next row:
  # row2 = next(f)

ou :

with open('some.csv', newline='') as f:
  reader = csv.reader(f)
  for row in reader:
    # do something here with `row`
    break

47voto

dm03514 Points 20748

Vous pourriez obtenir juste la première ligne comme :

with open('some.csv', newline='') as f:
  csv_reader = csv.reader(f)
  csv_headings = next(csv_reader)
  first_line = next(csv_reader)

30voto

Aravind Points 1

Vous pouvez utiliser la bibliothèque Pandas pour lire les premières lignes de l'énorme ensemble de données.

import pandas as pd

data = pd.read_csv("names.csv", nrows=1)

Vous pouvez mentionner le nombre de lignes à lire dans le paramètre nrows.

19voto

Emerson Peters Points 193

À titre d'information, un for peut être utilisée après avoir obtenu la première ligne pour obtenir le reste du fichier :

with open('file.csv', newline='') as f:
    reader = csv.reader(f)
    row1 = next(reader)  # gets the first line
    for row in reader:
        print(row)       # prints rows 2 and onward

17voto

Robert Elwell Points 4431

Desde el Documentation Python :

Et bien que le module ne prenne pas directement en charge l'analyse syntaxique des chaînes de caractères, cela peut facilement être fait :

import csv
for row in csv.reader(['one,two,three']):
    print row

Il suffit de déposer vos données de chaîne dans une liste singleton.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X