我有一个逗号分隔的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']
答案 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