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 |
感谢您的帮助!
答案 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))]
或将分隔符设置为':'