Python 3:将CSV文件以UTF-8格式写入StringIO缓冲区。

Python 3: Write CSV file to StringIO buffer in UTF-8 format.

以下代码以 UTF-8 格式写入 CSV 文件。 csv 文件存储在文件系统中。

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 缓冲区中。我应该怎么做?

为什么不直接写台词?

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