2011-01-07 12 views

答えて

6
",".join(lst) 

でも、それは実際にはcsv(エスケープなどが必要)ではありません。

10

正規のCSVファイルを生成する場合は、csvモジュールを使用します。ドキュメントから


例:

>>> import csv 
>>> spamWriter = csv.writer(open('eggs.csv', 'wb'), delimiter=' ', 
...       quotechar='|', quoting=csv.QUOTE_MINIMAL) 
>>> spamWriter.writerow(['Spam'] * 5 + ['Baked Beans']) 
>>> spamWriter.writerow(['Spam', 'Lovely Spam', 'Wonderful Spam']) 
+0

あなたはそれの速い例を教えてもらえますか –

+0

確かに。それは答えに追加されました。 'foo.writerow(list)'を使ってください。 'foo'は' csv.writer'オブジェクトです。 – syrion

+1

IMHO「標準的な」CSVは区切り記号としてカンマを区切り文字として使用し、おそらく '' ''ではなくquotecharとして使用します。 – martineau

0
import csv 

def writeCsvFile(fname, data, *args, **kwargs): 
    """ 
    @param fname: string, name of file to write 
    @param data: list of list of items 

    Write data to file 
    """ 
    mycsv = csv.writer(open(fname, 'wb'), *args, **kwargs) 
    for row in data: 
     mycsv.writerow(row) 

mydat = (
    ['Name','Age','Grade'], 
    ['Teri', 14, 7], 
    ['John', 8, 2] 
) 

writeCsvFile(r'c:\test.csv', mydat) 
0

あなたはPythonが実際に何をするか、ファイルにデータを書き込むたびカールは、データをバッファリングして、ファイルとそのI/O操作をしています(データをファイルに書き込む)。この操作は「フラッシング」(バッファ)と呼ばれます。開いているファイルをクローズしているかどうかを確認する必要があります。そうでなければ、バッファはフラッシュされず、ファイルに何も書き込まれません。

0

私は、後で個別に閉じることができるように、コードのファイルの一部を分割する必要があると思います。この場合、ライターオブジェクトを「クローズ」しようとしています。より良い方法は "with"を使用することですが、この例はあなたが持っている方法に似ています。

csvfile = open('test.csv', 'wb') 
csvwriter = csv.writer(csvfile) 
for item in pct: 
    csvwriter.writerow(item) 
csvfile.close() 
関連する問題