是否有一种方法可以将从用户收到的文本中的多个类写入python文件?

问题描述 投票:0回答:1

我正在尝试从用户那里接收输入(通过使用wx.Choice),然后根据该数字,编辑一个.py文件以根据所选数字编辑每个类的内容

我有一个使用wxpython设置的GUI,它具有三个选项。一个带有数字1-5的下拉菜单,一个标题文本框和一个主体多行文本框。选择数字,键入标题和键入正文时,我可以成功地将类写入文件,但是如果选择新的数字,它将用GUI中的新文本覆盖已写入文本文件的ive。

这里是文本面板和框:

self.numberChoices = ['1', '2', '3', '4', '5']
qnNumber_label = wx.StaticText(panel, label="Quicknote Number:", pos=(20, 30))
self.number_Control = wx.Choice(panel, pos=(140, 30), size=(50, -1), choices=self.numberChoices)
widgets.append(qnNumber_label)
widgets.append(self.number_Control)

# Quicknote title text panel creation
qnTitle_label = wx.StaticText(panel, label='Quicknote Title:', pos=(20, 60))
self.title_Control = wx.TextCtrl(panel, pos=(140, 60))
widgets.append(qnTitle_label)
widgets.append(self.title_Control)

# Quicknote body text panel creation
qnBody_label = wx.StaticText(panel, label='Quicknote Text:', pos=(20, 90))
self.body_Control = wx.TextCtrl(panel, style=wx.TE_MULTILINE, pos=(140, 90), size=(300, 200))
widgets.append(qnBody_label)
widgets.append(self.body_Control)

单击保存按钮时,它们将在此处被调用和写入:

quicknoteNumber = "class QN%s():" % self.number_Control.GetSelection()
quicknoteTitle = "\ttitle = '%s'" % self.title_Control.GetValue()
quicknoteBody = "\tnote = %s\n" % self.body_Control.GetValue().split("#")

ret = [quicknoteNumber, quicknoteTitle, quicknoteBody]
print ("\n".join(ret))
# print(ret)

file = open('config.py', 'w')

file.write("\n".join(ret))
file.close()

confirmation_text = 'Your quicknote was updated successfully!'
dlg = wx.MessageDialog(self, confirmation_text, 'Success', wx.OK)  # wx.OK|wx.ICON_INFORMATION
result = dlg.ShowModal()
dlg.Destroy()

这是预期的结果:

class QN0():
    title = 'title'
    note = ['a line of notes\nanother line of notes\none last line of notes']

class QN1():
    title = 'title'
    note = ['a line of notes\nanother line of notes\none last line of notes']

但是,当我从下拉列表中选择一个新数字时,它将替换我先前写入文件的内容。理想情况下,id喜欢覆盖相同编号的类,因为这是Quicknotes的编辑GUI。 (例如,如果QN0类已经存在,那么当我从下拉列表中选择QN0时,它将编辑QN0类,而不是第二次重写它。)>

我正在尝试从用户那里接收输入(通过使用wx.Choice),然后根据该数字,编辑一个.py文件,根据所选的数字编辑每个类的内容,我已经设置了GUI。 。

python wxpython
1个回答
0
投票

如注释中所述,您必须使用选项“ a +

© www.soinside.com 2019 - 2024. All rights reserved.