如何在最后一行写入没有换行符的csv文件?

ope*_*guy 7 python csv python-2.7

我有一个这样的代码在 python 中编写 csv 文件

import csv
with open('eggs.csv', 'wb') as csvfile:
    spamwriter = csv.writer(csvfile, delimiter=' ',
                            quotechar='|', quoting=csv.QUOTE_MINIMAL)
    spamwriter.writerow(['Spam'] * 5 + ['Baked Beans'])
    spamwriter.writerow(['Spam', 'Lovely Spam', 'Wonderful Spam'])
Run Code Online (Sandbox Code Playgroud)

图像输出

输出如图所示。现在 output (line 3) 中多了一行。如何在写入 csv 文件时删除最后一个空行。

fal*_*tru 5

使用file.seek到移动文件指针前的最后一个\r\n,然后使用file.truncate

import os
import csv

with open('eggs.csv', 'wb') as csvfile:
    spamwriter = csv.writer(csvfile, delimiter=' ',
                            quotechar='|', quoting=csv.QUOTE_MINIMAL)
    spamwriter.writerow(['Spam'] * 5 + ['Baked Beans'])
    spamwriter.writerow(['Spam', 'Lovely Spam', 'Wonderful Spam'])
    csvfile.seek(-2, os.SEEK_END) # <---- 2 : len('\r\n')
    csvfile.truncate()            # <----
Run Code Online (Sandbox Code Playgroud)

注意-2如果您使用不同的lineterminator. 我使用-2因为 \r\n是默认的换行符。