2017-10-03 7 views
0

次のコードは、UTF-8形式のCSVファイルを書き込みます。 csvファイルはファイルシステムに保存されます。Python 3:CSVファイルをStringIOバッファにUTF-8形式で書き込みます。

with open('sample.csv', 'w', newline='', encoding='utf-8') as csvfile: 
    spamwriter = csv.writer(csvfile, delimiter=' ', 
          quotechar='|', quoting=csv.QUOTE_MINIMAL) 
    csvfile.write('\ufeff') 
    spamwriter.writerow("嗨") 

私はファイルシステムにもう書きたくないので、CVSをStringIOバッファに保存したいだけです。私はこれをどのようにするべきですか?

答えて

0
import csv 
import os 

filename = "temp.csv" 
with open(filename, 'w', encoding='utf-8') as fp: 
    fp.write('\ufeff') 
    csv_writer = csv.writer(fp, quoting=csv.QUOTE_MINIMAL) 
    csv_writer.writerow(['嗨', '="00000011"', 'Lovely Spam', 'Wonderful Spam']) 

buffer = open(filename, 'r').read() 
print (buffer) 
os.unlink(filename) 


f= open("final.csv", "w") 
f.write(buffer) 
f.close() 
0

あなたは単に行を書いてみませんか?

import io 

s = io.StringIO() 

with open('sample.csv') as file: 
    for line in file: 
     s.write(line) 

s.seek(0) 
for line in s: 
    print(line) 
関連する問題