【发布时间】:2020-03-25 21:28:37
【问题描述】:
我正在尝试为文件夹中的每个图像分配一个值,该值可以是 1 到 6 之间的任何值。图像显示在 GUI 中,然后从那里选择并写入值(单选按钮 1 到 6)到一个文本文件。
所以,如果我在一个文件夹中有 image1、image2 和 image3,并且我将值 4、5 和 6 分别分配给 image1、image2 和 image3,那么我的输出文件具有以下内容:
image1 4
image2 5
image3 6
这与我给出的代码完美配合。但我还在 GUI 中添加了两个按钮(下一个和上一个),以便用户可以通过单击这些按钮来更改他们的决定。
我想在退出 GUI 之前记录用户为每个图像选择的最后一个值。也就是说,如果用户分别为 image1、image2 和 image3 选择值 4、5 和 6,然后稍后将值 2 重新分配给 image1,则预期输出为:
image1 2
image2 5
image3 6
使用我的代码,它记录所有值而不检查它是否已经存在。即我得到的输出是:
image1 4
image2 5
image3 6
image1 2
我的代码如下:
def storeoutput(self):
x= str(self.path)+ " " + str(str(int(self.v.get())) + "\n"
output = open("output.txt", 'a')
output.write(x)
output.close()
【问题讨论】:
-
要正确更新文件,您需要每次使用更新的值重写其所有内容。
-
@martineau 你能解释一下如何在代码中做到这一点吗?我是 python 新手...
-
如果您在问题中添加足够的代码以使其成为问题的minimal reproducible example,我将很高兴。
-
究竟有什么不清楚的地方?您在输出中多了一行,这正是“追加”所做的。
-
@Thomas:在输出中再写一行不会更新之前的行……
标签: python