我已经查看过这个主题的许多其他主题,但我似乎无法找到在文件末尾附加新行的正确代码。
这是我的代码:
Name=input('What is your name:')
Date=input('What is the date:')
Score=input('What was your high score:')
myFile=open('Scores.txt','a')
myFile.write("{},{},{}"+"\n".format(Name, Date, Score))
myFile.close()
但是,Score.txt文件中似乎唯一输出的内容是{},{},{}
。
我的预期输出是每次运行这个程序时,它会将新数据输出到一个新行,而不会覆盖它上面的行。
答案 0 :(得分:2)
当你这样做时:
"{},{},{}"+"\n".format(Name, Date, Score)
Python将其解释为:
"{},{},{}"+("\n".format(Name, Date, Score))
因为方法调用.format(...)
has a tighter binding而不是+
运算符。意思是,它仅适用于字符串"\n"
,而不适用于组合字符串"{},{},{}"+"\n"
。
此外,在字符串str.format
上调用"\n"
方法实际上是无操作:
>>> "\n".format(1, 2, 3)
'\n'
>>>
因此,写入文件的字符串只是"{},{},{}"+"\n"
或"{},{},{}\n"
。
要解决此问题,只需在格式字符串中包含换行符:
myFile.write("{},{},{}\n".format(Name, Date, Score))
答案 1 :(得分:1)
"{},{},{}"+"\n".format(Name, Date, Score)
您正在字符串format
上调用"\n"
方法。
尝试"{},{},{}\n".format(Name, Date, Score)
答案 2 :(得分:1)
您目前正在格式化 \ n
格式化整个字符串,您需要告诉 \ n 是字符串的一部分。
myFile.write(str("{},{},{}"+"\n").format(Name, Date, Score))
答案 3 :(得分:0)
它格式化\n
(新行)字符串,然后添加大括号。试试这个。
myFile.write( ("{},{},{}"+"\n").format(Name, Date, Score) )
答案 4 :(得分:0)
只需使用括号:
myFile.write(("{},{},{}"+"\n").format(Name, Date, Score))
或者,或许更好:
myFile.write(("{},{},{}\n").format(Name, Date, Score))
然后.format
将应用于整个字符串。
答案 5 :(得分:0)
尝试以下代码:
Name=input('What is your name:')
Date=input('What is the date:')
Score=input('What was your high score:')
myFile=open('Scores.txt','a')
myFile.write("{0}\n{1}\n{2}\n".format(Name, Date, Score))
myFile.close()
请查看此文档https://docs.python.org/3/library/string.html#format-examples以查看格式示例。
你也忘了使用" \ n"关于每个价值。
此致