2013-06-23 100 views
39

有使用Python大量的閱讀CSV數據的例子,像這樣的:如何在Python中讀取一行csv數據?

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

我只是想讀一個數據線,並進入各種變量。我怎麼做?我到處尋找一個工作的例子。

我的代碼只檢索i值,並沒有其他的值

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

什麼是您的CSV結構中的任何行?當你迭代閱讀器時,「行」是什麼? – dm03514

回答

15

的,你可以得到的只是第一行這樣的:

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

爲只讀的第一行csv文件在讀取器對象上使用next()

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) 

或:

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

@GavrielCohen爲什麼? – Steve

+0

我的錯誤,我的意思是另一種解決方案,對不起 –

7

Python documentation

雖然模塊不直接支持解析字符串,它可以很容易做到:

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

只需將您的字符串數據放入單例列表中即可。

11

您可以使用Pandas庫從大型數據集中讀取前幾行。

import pandas as pd 

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

您可以提到在nrows參數中要讀取的行數。

4

簡單的方式來獲得在csv文件

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

爲了使這個工作在python3,只需刪除'b''rb' –