将csv中的一行拆分为python中的行

时间:2014-03-01 00:29:17

标签: python python-2.7 csv

我有一个逗号分隔的csv文件,我想只输出第一行的所有值,其中“count”数字前缀为我输出的值。我的输出应该如下所示:

0 row1col1
1 row1col2
2 row1col3
...
n row1coln

我无法看到如何拆分阅读器对象,因为拆分不起作用。

到目前为止,我有:

import csv
reader_object = csv.reader(open('Film.csv'))

for i in range(1):
    print i,reader_object.next()

给了我

0 ['value1', 'value2', 'value3']

3 个答案:

答案 0 :(得分:1)

尝试使用enumerate

reader_object = csv.reader(open('Film.csv'))

for i, line in enumerate(reader_object):
    print i,line

如果你有这样的csv:

c1 c2 c3
cc1 cc2 cc3
ccc1 ccc2 ccc3

如果你想一起加入一个专栏,你可以这样做:

with open('Film.csv') as f:
    reader_object = csv.reader(f, delimiter=' ')
    i=0
    for line in reader_object:
        for x in line:
            print i, ''.join(x)
            i+=1   

打印:

0 c1
1 c2
2 c3
3 cc1
4 cc2
5 cc3
6 ccc1
7 ccc2
8 ccc3

答案 1 :(得分:0)

您可以像这样迭代第一行中的值:

import csv
reader_object = csv.reader(open('Film.csv'))

for index, col_value in enumerate(reader_object.next()):
    print '{} {}'.format(index, col_value)

输出:

0 'value1'
1 'value2'
2 'value3'
etc.

csv.reader()返回的Reader对象包装你给它的迭代器(在本例中是一个文件句柄),并提供一个返回连续行的next()方法;在返回它们之前,它会通过从提供的Dialect分隔符来将每行转换为一个列表,如果没有给出,则使用逗号作为默认值。

使用第一行中的列值列表,我们可以使用for循环进行迭代并使用 enumerate()在迭代时给我们一个递增的索引。

答案 2 :(得分:0)

您应该使用以下示例

import csv
i = 0
with open('Film.csv', 'rb') as csvfile:
    file_reader = csv.reader(csvfile)
    for row in file_reader:
        for col in row:
            print i, col.strip()
            i += 1