2017-10-03 1 views
0

Der folgende Code schreibt eine CSV-Datei im UTF-8-Format. Die CSV-Datei wird im Dateisystem gespeichert.Python 3: CSV-Datei in den StringIO-Puffer im UTF-8-Format schreiben.

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("嗨") 

Nun will ich nicht mehr an die fileystem schreiben, habe ich die CVS in einen StringIO Puffer nur speichern möchten. Wie soll ich das machen?

Antwort

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

Warum schreibst du nicht einfach die Zeilen?

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) 
Verwandte Themen