在csv文件中打印行?

2024-06-16 09:47:08 发布

您现在位置:Python中文网/ 问答频道 /正文

以下是我的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

Tags: 文件csv示例readerrowdavidmichaelryan
3条回答

使用联接

import csv

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

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

如果您只想打印第一行,请删除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将提供下一个项,在本例中是第一行。注意,这将推进迭代器,其上的后续迭代将从第二行开始。

相关问题 更多 >