由于我的输入互相覆盖,如何写新行?

时间:2019-01-22 15:00:45

标签: python if-statement

我正在尝试从GUI中保存答案,该GUI的单选按钮的值在A,B和C之间,但是当我尝试自己的代码时,它会完全重写前几个字母,而不会转到下一个字母线。

@csrf

我在控制台中的输出是b c d e,但在文本文件中,第一行中只有一个字母,即最后一个字母。

2 个答案:

答案 0 :(得分:3)

每次您的代码都这样做:

textfile = open("studentexam.txt", "w")

您正在重新打开文件并覆盖以前的文件。与File |相同Save会保存在应用程序中,但您的代码不会询问“您确定吗?”。使用模式"a"代替"w"

摘自open()的文档:

  

mode的最常用值是'r'表示读取,'w'表示写入(如果文件已经存在,则将其截断),以及'a'表示附加。

答案 1 :(得分:0)

# param = 'clkA'
def button_click(self, param):
    with open('studentexam.txt', 'a') as f:
        print(param[-1])
        f.write(param[-1])

Confused by python file mode "w+"

ps。当每个功能都具有相同的功能时,请尝试避免代码重复...当然可以。