在csv文件中打印行?

Age*_*007 2 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
Run Code Online (Sandbox Code Playgroud)

我编写此代码的目的是打印出第一行:

import csv

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

然而,这只打印出第一个(技术上的第二个)列,如下所示:

Ryan
David
Micheal
Robbie
Run Code Online (Sandbox Code Playgroud)

如何将它打印出第一行呢?

1 Ryan Giggs £13.50 23 Manchester Utd
Run Code Online (Sandbox Code Playgroud)

Mos*_*oye 7

next如果您只打算打印第一行,则删除for循环并使用,因为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
Run Code Online (Sandbox Code Playgroud)

reader对象是一个迭代器,调用next它将提供下一个项目,在这种情况下是第一行.请注意,这会使迭代器前进,后续迭代将从第二行开始.


Max*_*Max 6

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))
Run Code Online (Sandbox Code Playgroud)