2016-12-01 10 views
-1

私はPythonを初めて使いました。リストから行が見つからないcsv.writer.writerows

私はcsvとして保存する19188行のリストを持っています。

リストの行をcsvに書き込むと、最後の行はありません(19112で停止します)。

何が原因なのか考えていますか?ここで

は、私はCSVファイルに書き込む方法です:

mycsvfile = open('file.csv', 'w') 
thedatawriter = csv.writer(mycsvfile, lineterminator = '\n') 
list = [] 
#list creation code 
thedatawriter.writerows(list) 

リストの各行は、4列の要素を持っています。

別の情報:私は行​​方不明とcsvファイルに追加されているだけで、最後の要素を含むリストを作成した場合、それは一種の作品

は(それが追加されますが、二回...) 。

mycsvfile = open('file.csv', 'w') 
thedatawriter = csv.writer(mycsvfile, lineterminator = '\n') 
list = [] 
#list creation code 
thedatawriter.writerows(list) 
list_end = [] 
#list_end creation code 
thedatawriter.writerows(list_end) 

list_endを単独で追加しようとすると、動作していないようです。私は間違っているcsvの書き込みパラメータがあるかもしれないと思っています。

別の情報:

私が追加したファイルを開くと、「改行= 『』」、それは(すべてではないが)、それに複数の行を書き

mycsvfile = open('file.csv', 'w', newline='') 

がなければなりませんcsv(または方言)に開いたり書き込んだりする簡単な間違い

ありがとうございました!

+0

'list'のような組み込み関数をシャドウしないでください:変数名を変更してください。 –

+0

あなたのリストは空です、どうやって19112行が得られますか?あなたの実際のコードを投稿してください... –

+0

「[Python 2.7でユニコードを含むCSVファイルを読み書きする]」の可能な複製(http://stackoverflow.com/questions/17245415/read-and-write-csv-files-including-unicode-with- python-2-7) –

答えて

0

私の答えが見つかりました!私は未処理の行を残したスクリプトの終わりの前にファイルハンドルを閉じていませんでした。ここで

が修正です:

with open('file.csv', 'w', newline='') as mycsvfile: 
    thedatawriter = csv.writer(mycsvfile, lineterminator = '\n') 
    thedatawriter.writerows(list) 

参照:スクリプトが終了する前にWriting to CSV from list, write.row seems to stop in a strange place

は、ファイルハンドルを閉じます。ファイルハンドル を閉じると、書き込み待ちの文字列もフラッシュされます。 をフラッシュせずにスクリプトが終了すると、出力が書き込まれないことがあります。

with open(...)をf構文として使用すると便利です。なぜなら、Pythonがwith-suiteを残しているときにファイルを閉じるために ファイルが閉じられるからです。 withを使用すると、 はファイルをもう一度閉じることを決してしません。

関連する問題