Python - 写入新行

时间:2015-02-11 18:51:39

标签: python string file

我已经查看过这个主题的许多其他主题,但我似乎无法找到在文件末尾附加新行的正确代码。

这是我的代码:

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文件中似乎唯一输出的内容是{},{},{}。 我的预期输出是每次运行这个程序时,它会将新数据输出到一个新行,而不会覆盖它上面的行。

6 个答案:

答案 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"关于每个价值。

此致