我正在尝试将一些变量保存到单独行中的文件中。
我的代码如下:
def saveall(sname, senemyname, scheckpoint,):
file = open("savefile.sav", "w")
file.writelines([sname, senemyname, scheckpoint])
file.close()
如果我在代码中放入saveall("John","Steve","Crossroads")
,我希望它生成一个名为savefile.sav的文件,其中包含:
John
Steve
Crossroads
但是,当我运行程序时,savefile.sav包含:
JohnSteveCrossroads
我在做什么错了?
答案 0 :(得分:3)
name
希望每个字符串都以换行符结尾。所以你需要:
writelines
file.writelines([sname + '\n', senemyname + '\n', scheckpoint + '\n'])
(行)将行列表写入流中。没有添加行分隔符,因此通常为每个提供的行的末尾都有一个行分隔符。
但是通常writelines
更惯用。请注意,这不会添加文件换行符。
您还应该对文件使用上下文,因为如果引发异常,则可能无法关闭文件:
file.write('\n'.join([sname, senemyname, scheckpoint))
答案 1 :(得分:1)
writelines
不在行之间添加分隔符,因此您必须自己添加分隔符:
def saveall(sname, senemyname, scheckpoint,):
file = open("savefile.sav", "w")
file.writelines((line + '\n' for line in [sname, senemyname, scheckpoint]))
file.close()
saveall("John","Steve","Crossroads")
文件内容:
John
Steve
Crossroads