创建的列表我试图将多列csv追加到多个列表。第1列将在列表1进入第2列会在列表2等等追加到从范围
不过,我希望能够在列数不硬代码,以便它可以与多个CSV文件。所以我用列计数来分配应该有多少个列表。
努力虽然追加值,这些名单的时候我来了脱胶。我已经启动了一个应该能够将右列分配给右列表的计数,但是看起来循环只是在第一次循环之后退出并且不会将其他列追加到列表中。
import csv
#open csv
f = open('attendees1.csv')
csv_f = csv.reader(f)
#count columns
first_row = next(csv_f)
num_cols = len(first_row)
#create multiple lists (within lists) based on column count
d = [[] for x in xrange(num_cols)]
#initiate count
count = 0
#im trying to state that whilst the count is less than the amount of columns, rows should be appended to lists, which list and which column will be defined by the [count] value.
while count < (num_cols):
for row in csv_f:
d[count].append(row[count])
count += 1
print count
print d
这比我刚刚制定基于现有的代码,给予好评更加美好的答案。你可以修改你的答案来使用'with'来打开文件,因为它目前在OP代码中保持打开状态?整个程序可以用4行代码完成。 – roganjosh
会阅读这个谢谢你!是否有任何理由为什么迭代不会在while循环的每个实例之后休息?有没有办法让它退出? –
@saph_top:迭代虽然CSV文件是在文件从磁盘读取时完成的。这样做是为了避免必须将整个文件读入内存。在'while'循环的每次迭代之后重置将需要将文件倒回到开始重新开始。 – PaSTE