在python中写入csv文件

2024-04-23 07:30:16 发布

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

with open("classA.csv" , "a", newline = "") as fp:
     a = csv.writer(fp, delimiter = ",")
     data = [("{0} has scored: {1} / 10\n ".format(name,score))]
     a.writerows(data) 

我正在尝试创建一个数学测验,计算最终结果,然后将此结果写入excel文件。到目前为止,这是我的代码,但当我查看excel时,我看到数据中的整个语句都在一行中展开,并希望如下所示:

| B | o | b | h | a | s | s | c | o | r | e | d | : | 9 | / | 1 | 0

我怎样才能像这样打印出来:

| Bob has scored: | 9/10 |

谢谢你的帮助!你知道吗


Tags: csvnameformatdataaswithnewlineopen
2条回答

您需要在传递给writerows的列表中提供一个列元组。你知道吗

元组中的每个元素都将是结果文件中的一列,列表中的所有元组表示行。你知道吗

例如,如果要输出:

Bob,2
Joe,3
Bill,5

然后您需要创建如下列表:

[('Bob', 2), ('Joe', 3), ('Bill', 5)]

要在示例中实现相同的功能,请尝试以下版本:

col1, col2 = '{} has scored:','{}/10'

with open('classA.csv', 'a') as fp:
   writer = csv.writer(fp, delimiter=',')
   data = [(col1.format(name), col2.format(score))]
   writer.writerows(data)

您也不需要添加\n

您的分隔符是“,”,因此您应该尝试:data = [("{0} has scored,{1} / 10\n ".format(name,score))]或将分隔符设置为“:”

相关问题 更多 >