将csv文件的前两行打印到标准输出。

5
我想要打印(stdout)CSV文件的前两行:
我希望能够将CSV文件的前两行打印出来(stdout)。
#!/usr/bin/env python
import csv
afile = open('<directory>/*.csv', 'r+')
csvReader1 = csv.reader(afile)
for row in csvReader1:
    print row[0]
    print row[1]

然而,使用此代码输出前两列。
有什么建议吗?
3个回答

15

你想要打印一行,但是你的代码要求打印每一行的第一和第二个元素。

既然你想要打印整行 - 你可以直接打印该行,并且额外只读取前两个元素。

#!/usr/bin/env python
import csv
afile = open('<directory>/*.csv', 'r+')
csvReader1 = csv.reader(afile)
for i in range(2):
    print csvReader1.next()

使用 'rb' 打开 Python 2.X 中的 CSV 文件(参见 csv.reader)。 - Mark Tolonen
1
建议使用 next(csvReader1)(适用于 Python 2.X 和 3.X)。 - Mark Tolonen

6

一般来说,您可以使用itertools.islice函数来限制迭代器:

import itertools
for row in itertools.islice(csvReader1, 2):
    print row

或通过巧妙使用zip()函数:

for line_number, row in zip(range(2), csvReader1):
    print row

0

你也可以使用枚举

for i, row in enumerate(csvReader1):
    if (i > 1):
        print (row)
    else:
        break
    

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接