2013-06-23 38 views
39

Có rất nhiều ví dụ về đọc dữ liệu csv sử dụng python, như thế này:Làm thế nào để đọc một dòng dữ liệu csv trong Python?

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

tôi chỉ muốn đọc một dòng dữ liệu và nhập nó vào biến khác nhau. Làm thế nào để làm điều đó? Tôi đã xem xét ở khắp mọi nơi cho một ví dụ làm việc.

Mã của tôi chỉ lấy giá trị cho tôi, và không ai trong số các giá trị khác

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

cấu trúc của csv của bạn là gì? 'Hàng' khi bạn đang lặp qua trình đọc là gì? – dm03514

Trả lời

15

bạn có thể nhận được chỉ là hàng đầu tiên như:

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

Để đọc chỉ hàng đầu tiên của Sử dụng tệp csv next() trên đối tượng trình đọc.

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) 

hay:

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

@GavrielCohen tại sao? – Steve

+0

Sai lầm của tôi, tôi có nghĩa là một giải pháp khác, xin lỗi –

7

Từ Python documentation:

Và trong khi các mô-đun không trực tiếp hỗ trợ các chuỗi phân tích cú pháp, nó có thể dễ dàng được thực hiện:

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

Chỉ cần thả dữ liệu chuỗi của bạn vào một danh sách singleton.

11

Bạn có thể sử dụng thư viện Pandas để đọc một vài dòng đầu tiên từ tập dữ liệu khổng lồ.

import pandas as pd 

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

Bạn có thể đề cập đến số dòng được đọc trong tham số nrows.

4

Cách đơn giản để có được bất kỳ dòng trong tập tin csv

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

Để thực hiện công việc này trong python3, chỉ cần xóa 'b' trong 'rb' –

Các vấn đề liên quan