在python中写入csv文件

时间:2015-10-06 18:33:05

标签: python csv python-3.4

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 |

感谢您的帮助!

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:0)

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