以下是我的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 :(得分:7)
如果您只打算打印第一行,请删除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
将提供 next 项,在这种情况下是第一行。请注意,这会使迭代器前进,后续迭代将从第二行开始。
答案 1 :(得分:5)
row[1]
给出了row
中的第二件事(因为它从0开始计数)。你想要所有row
,用空格分隔。您可以将row[1]
替换为" ".join(row)
来修复它。 " "
是我们希望每个项目分隔的内容,而row
是我们要分隔的列表。
完整的代码将是
import csv
with open("Footballers.csv") as f:
reader = csv.reader(f)
for row in reader:
print(" ".join(row))
答案 2 :(得分:2)
使用加入
import csv
with open("Footballers.csv") as f:
reader = csv.reader(f)
for row in reader:
print(' '.join(row) )