創建的列表我試圖將多列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