Python 2.7 CSV写入格式不正确
我目前正试图让领导委员会的工作。排行榜只会存储分数。我正在尝试将分数写入csv文件。这里是我写的代码:Python 2.7 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'
这是第一次,我一直使用CSV文件在Python,所以我可能已经做了一个小愚蠢的错误,但任何帮助将非常感激。谢谢。
您不需要自己添加换行符(\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
被设置为接受一个迭代器,为迭代器的每个成员在行中创建一个字段。所以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
我试过这段代码,它已经排序了数字的间距,但是每行之间仍然有间隔。 https://gyazo.com/f308088038cc214588918c7aba40cb9f 你能帮我解决这个问题吗?如果你知道为什么会发生这种情况,无论哪种方式,谢谢你向我解释为什么这些数字全部分开。 –
@HarryBeggs您发布的代码只写入一个值。请张贴编写第二个号码的代码。 – RoadieRich
该屏幕截图是在两次运行后,没有任何其他写入。谢谢 编辑:刚刚跑了第三次,仍然有空间发生。 –
只是删除'+“\ n”'和再试一次。 – roganjosh