我有一個CSV檔案,內容如下:
aa , a1, 1, bb, b1, 11, cc, c1, 111.
aa2 , a2, 2, bb2, b2, 22, cc2, c2, 222。
aa3 , a3, 3, bb3, b3, 33, cc3, c3, 333。
而我需要把前三個內容,存盤在陣列中,如。
aa , a1, 1, bb, b1, 11, cc, c1, 111 將變成 ['aa a1 1', 'bb b1 11', 'cc c1 111']
而這是我的代碼:
import csv
with open('Test.csv') as csv_file:
csv_reader = csv.reader(csv_file)
rows = list(csv_reader)
lines= len(list(rows))
for line in range(line):
i=0
j=1
k=2
for l in range(len(list(rows[line])>)。
t=[]
t.append(rows[line][i] rows[line][j] rows[line][k])
print(t[0:] )
i =3
j =3: >3.
k =3
uj5u.com熱心網友回復:
對于for回圈,通常最好是直接對專案進行迭代,例如使用for row in rows:,而不是對索引進行迭代,例如使用for line in range(lines):。
另外,請注意,每次你呼叫 list,你都在建立一個新的串列。這可能是一種浪費。例如,lines = len(list(rows))建立了一個不必要的串列rows的副本。你可以簡單地撰寫 nb_lines = len(rows)。
既然你想把你的串列分成3塊,你可能會有興趣閱讀這些:
more_itertools.chunked的檔案;import csv
t = []
with open('Test.csv' ) as csv_file:
for row in csv.reader(csv_file):
t.append([' '/span>. join(row[i:i 3]) for i in range(3) ] )
print(t)
# [['aa a1 1', ' a1 1 bb', ' 1 bb b1'],
# ['aa2 a2 2', ' a2 2 bb2', ' 2 bb2 b2'],
# ['aa3 a3 3', ' a3 3 bb3', ' 3 bb3 b3']]
我們可以擺脫那些看起來很糟糕的額外空格,使用str.strip:
import csv
t = []
with open('Test.csv' ) as csv_file:
for row in csv.reader(csv_file):
t.append([' '.join([word. strip() for word in row[i: i 3]]) for i in range(3) ])
print(t)
# [['aa a1 1', 'a1 1 bb', '1 bb b1'],/span>
# ['aa2 a2 2', 'a2 2 bb2', '2 bb2 b2'],
# ['aa3 a3 3', 'a3 3 bb3', '3 bb3 b3']]
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/310220.html
標籤:
