我目前正试图让领导委员会工作。排行榜只会存储得分。我正在尝试将分数写入csv文件。这是我写的代码:
if col:
with open("rec_Scores.csv", "a") as f:
w = csv.writer(f, delimiter = ",")
w.writerow(str(curr_score) + "\n")
crashed = True
运行此命令时,csv文件的结尾如下:https://gyazo.com/19c9007827498fb5cf847535167d5841
我认为这与将分数转换为字符串有关,但是当我不转换分数时,我得到错误:
Traceback (most recent call last):
File "C:\Users\Harry\Desktop\Desktop\Computing Project\Galaxian.py", line 173, in <module>
w.writerow(curr_score + "\n")
TypeError: unsupported operand type(s) for +: 'int' and 'str'
这是我第一次使用Python中的csv文件,所以我可能犯了一个小傻错,但任何帮助都会非常感激。感谢。
答案 0 :(得分:3)
您无需自行添加换行符(\n
)。 csv.writer
将为您做到这一点。
if col:
with open("rec_Scores.csv", "ab") as f:
w = csv.writer(f, delimiter = ",")
w.writerow(curr_score)
crashed = True
将curr_score
转换为字符串时得到的奇怪结果是因为python中的字符串是可迭代的(您可以说for char in "abc":
)。 writerow
设置为接受iterable,在iterable的每个成员的行中创建一个字段。所以writerow
认为你想要一些列,每列包含一个字符。
如果要将字符串添加为行中的唯一元素,则需要将其包含在另一个可迭代中,例如,元组:
if col:
with open("rec_Scores.csv", "ab") as f:
w = csv.writer(f, delimiter = ",")
w.writerow((str(curr_score),)) #note the extra brackets and comma
crashed = True