Python附加到csv文件而不使用whitelin

2024-04-29 06:25:08 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在用python编写一个游戏。在游戏的每一轮(是的,游戏有多轮)之后,我想将数据写入CSV文件。

这是我的代码:

with open('data.csv', 'a') as fp:
            for player in self.players:
                a = csv.writer(fp, delimiter=',');
                data = [[player.name, player.penalty(), player.score()]];
                a.writerows(data);

CSV文件中此代码的输出(两轮后)为:

player1,10,10.0

player2,5,5.0

player1,20,15.0

player2,10,7.5

问题是,每次脚本将数据追加到csv文件时,数据之间都有一条白线。我只想在回合之间加一条白线。所以输出应该如下所示:

player1,10,10.0
player2,5,5.0

player1,20,15.0
player2,10,7.5

我有办法做到这一点吗?

我的新工作代码:

with open('take5.csv', 'ab') as fp:
            for player in self.players:
                a = csv.writer(fp, delimiter=',');
                data = [[player.name, player.penalty(), player.score()]];
                a.writerows(data);
            white_row = ['\n'];
            a.writerows(white_row);

Tags: 文件csv数据代码游戏dataaswith
1条回答
网友
1楼 · 发布于 2024-04-29 06:25:08

Python3:

with open('data.csv', 'a', newline='') as fp:
    for player in self.players:
        a = csv.writer(fp, delimiter=',');
        data = [[player.name, player.penalty(), player.score()]];
        a.writerows(data);

在python 3中,CSV模块有一些变化,您可以读取here

Python2.x:

open()改成二进制open('data.csv', 'ab')

您可以使用以下方法设置控制报价:

csv.writer(fp, delimiter=',',quoting=csv.QUOTE_MINIMAL)

从文档中可以选择:

csv.QUOTE_ALL Instructs writer objects to quote all fields.

csv.QUOTE_MINIMAL Instructs writer objects to only quote those fields which contain special characters such as delimiter, quotechar or any of the characters in lineterminator.

csv.QUOTE_NONNUMERIC Instructs writer objects to quote all non-numeric fields.

Instructs the reader to convert all non-quoted fields to type float.

csv.QUOTE_NONE Instructs writer objects to never quote fields. When the current delimiter occurs in output data it is preceded by the current escapechar character. If escapechar is not set, the writer will raise Error if any characters that require escaping are encountered.

相关问题 更多 >