在csv文件中打印行?

时间:2016-12-03 16:40:40

标签: python 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

3 个答案:

答案 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) )