Python附加到csv文件而不使用白线
我正在用python编写一个游戏。在每一轮游戏之后(是的,游戏有多轮),我想把数据写入CSV文件 这是我的代码:Python附加到csv文件而不使用白线,python,python-2.7,csv,Python,Python 2.7,Csv,我正在用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
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
播放器2,10,7.5
问题是每次脚本向csv文件追加数据时,数据之间都有一条白线。我只想在两轮之间加一条白线。因此,输出应如下所示:
播放器1,10,10.0player2,5,5.0 播放器1,20,15.0
播放器2,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);
Python 3:
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);
在Python3中,可以读取的CSV模块发生了变化
Python2.x:
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);
只需将open()
更改为二进制open('data.csv','ab')
您可以使用以下命令设置控件引用:
csv.writer(fp,分隔符=',',quoting=csv.QUOTE\u最小值)
从文档中,您可以选择:
csv.QUOTE_ALL指示writer对象引用所有字段
csv.QUOTE_MINIMAL指示writer对象仅引用这些字段
包含特殊字符,如分隔符、引号或任何
行终止符中的字符数
csv.QUOTE\u NONNUMERIC指示writer对象引用所有非数值对象
田地
指示读取器将所有不带引号的字段转换为float类型
csv.QUOTE_NONE指示writer对象从不引用字段。什么时候
当前分隔符出现在输出数据中,它前面有
当前转义字符。如果未设置escapechar,则写入程序
如果有需要转义的字符被删除,将引发错误
遇到
上面的答案不起作用。应改用线终止符:
for player in self.players:
a = csv.writer(fp, delimiter=',',lineterminator='\n');
这适用于python2和pytho3
此外,报价选项应与报价字符结合使用。如果没有使用quotechar,则Quote是过时的。您的python版本是什么?我猜这段代码在一个函数中,并且您正在使用不同的值为每一轮调用该函数?是的,这是正确的,但我现在可以使用它了,我将更新我的脚本是的,我已经尝试过了,但我的版本是2.7,不支持“换行”