2

次のコードがあります。

import csv
input_file = csv.reader(open('template.csv','r+')) #template.csv has 10 lines
output = open('output.csv', 'wb')
wr = csv.writer(output, quoting=csv.QUOTE_ALL)

elem = [1,2,3,4,5]

for i in elem:
    wr.writerows(input_file)

ファイル 'template.csv' には 10 行あるため、10 x 5 行の出力が期待されますが、10 行しか表示されません。

writerow/rows ループをネストするにはどうすればよいですか?

4

2 に答える 2

6

あなたinput_fileはイテレーターであり、使い果たされると最初に巻き戻されません。結果をリストに保存し、次のように記述します。

input_file = csv.reader(open('template.csv','r+')) #template.csv has 10 lines
input_lines = list(input_file)
于 2012-10-05T10:30:29.070 に答える
0

writerows : csv.writer で設定したルールに応じて csv を作成します。

wr = csv.writer(csvfile, delimiter='\n') #this will output each element in input_file 
                                         #as a separate line

#Loop it 5 times you should have your 5 x 10 lines printed to the file
for i in elem[0:4]:
    wr.writerows(input_file)
于 2014-08-07T14:24:08.917 に答える