2016-12-03 202 views
2

這裏是我的csv文件的樣本:在csv文件中打印行?

1 Ryan Giggs £13.50 23 Manchester Utd 
2 David Beckham £40.00 24 Manchester Utd 
3 Michael Owen £22.00 22 Liverpool 
4 Robbie Fowler £21.00 23 Leeds Utd 

我寫了這個代碼的意圖,打印出的第一行:

import csv 

with open("Footballers.csv") as f: 
    reader = csv.reader(f) 
    for row in reader: 
     print(row[1]) 

然而,這僅打印出第一個(技術上第二)列像這樣:

Ryan 
David 
Micheal 
Robbie 

我怎樣才能打印出第一行像這樣?

1 Ryan Giggs £13.50 23 Manchester Utd 
+0

@roganjosh這將打印所有行,提問者只需要第一個。 – user312016

+0

@roganjosh當我第一次回答 – user312016

+0

@roganjosh時,我做了同樣的事情。如果你只需要一個項目,爲什麼要設置for循環。這就是'next'所做的。除了'for'循環本身在幕後調用'next'。 –

回答

4

row[1]給出row中的第二件事(因爲它從0開始計數)。你想要所有的row,用空格分開。您可以用" ".join(row)代替row[1]來修復它。 " "是我們希望每個項目被分開的東西,而row是我們要分開的列表。

完整的代碼將

import csv 

with open("Footballers.csv") as f: 
    reader = csv.reader(f) 
    for row in reader: 
     print(" ".join(row)) 
+0

您的代碼將打印每一行。 – user312016

5

下降for循環和使用next如果你只想要打印的第一行,作爲對象的for迭代,並且將陸續提供的每一行:

with open("Footballers.csv") as f: 
    reader = csv.reader(f) 
    print(next(reader)[0]) # default separator is a comma so you only get one item in the row 

reader對象是迭代器並在其上調用next將提供下一個項目,在這種情況下是第一行。請注意,這會促進迭代器,隨後的迭代將從第二行開始。

2

使用加入

import csv 

with open("Footballers.csv") as f: 
    reader = csv.reader(f) 
    for row in reader: 
    print(' '.join(row)) 
+0

每一行都是僅包含項目的列表,因爲默認分隔符是逗號。調用'加入'可能不需要 –

+0

你能詳細說明嗎? – SeedofWInd