2013-06-23 41 views
39

Istnieje wiele przykładów odczyt danych csv przy użyciu Pythona, jak ten:Jak odczytać jedną linię danych CSV w Pythonie?

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

chcę tylko do odczytu jednego wiersza danych i wprowadzić go do różnych zmiennych. Jak mogę to zrobić? Szukałem wszędzie na przykład.

Mój kod pobiera tylko wartości dla I, a żaden z pozostałych wartości

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]) 
+0

jaka jest struktura pliku CSV? Czym jest "wiersz" podczas iteracji przez czytnik? – dm03514

Odpowiedz

15

można uzyskać tylko pierwszy wiersz tak:

csv_reader = csv.reader(f) 
csv_headings = next(csv_reader) 
first_line = next(csv_reader) 
80

Aby przeczytać tylko pierwszy wiersz plik csv użyj next() na obiekcie czytnika.

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) 

czyli

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

@GavrielCohen dlaczego? – Steve

+0

Mój błąd, miałem na myśli inne rozwiązanie, przepraszam –

7

Z Python documentation:

I podczas gdy moduł nie obsługuje bezpośrednio ciągi analizowania, to można łatwo zrobić:

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

Po prostu upuść dane ciągów znaków na listę singleton.

11

Możesz użyć biblioteki Pandas, aby przeczytać kilka pierwszych linii z ogromnego zbioru danych.

import pandas as pd 

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

Możesz podać liczbę linii do odczytania w parametrze nrows.

4

Prosty sposób, aby każdy wiersz w pliku csv

import csv 
csvfile = open('some.csv','rb') 
csvFileArray = [] 
for row in csv.reader(csvfile, delimiter = '.'): 
    csvFileArray.append(row) 
print(csvFileArray[0]) 
+0

Aby to działało w python3, po prostu usuń 'b' w 'rb' –

Powiązane problemy