【问题标题】:wxpython for each loop from textctrl split by newlinewxpython 用于来自 textctrl 的每个循环,由换行符分割
【发布时间】:2013-04-07 23:06:31
【问题描述】:

我有一个将 .txt 文件的内容加载到多行 textctrl 的应用程序,然后我想在这个 textctrl 上执行一个“for 循环”并获取每一行文本并将其放入一个数组中以供进一步操作。

可以这样吗?还是打开文件,将文本读入数组,然后将其显示到 textctrl 中会更好?

如果是这样,我如何将文件中的文本直接放入数组中?

def OnOpen(self, e):
    dlg = wx.FileDialog(self, "Choose a file to open", self.dirname, "", "*.txt", wx.OPEN) #open the dialog boxto open file
    if dlg.ShowModal() == wx.ID_OK:  #if positive button selected....
        directory, filename = dlg.GetDirectory(), dlg.GetFilename()
        self.filePath = '/'.join((directory, filename))     #get the directory and filename of where file is located
        directory, filename = dlg.GetDirectory(), dlg.GetFilename()
        #self.urlFld.LoadFile(self.filePath)
        self.fileTxt.SetValue(self.filePath)

【问题讨论】:

    标签: wxpython wxtextctrl


    【解决方案1】:

    我会创建一个空列表并将文件中的行附加到它:

    myList = []
    for line in myOpenFileObj:
        myList.append(line)
    

    然后像之前一样将文本添加到文本控件。

    【讨论】:

    • 我有我的数组,但它只打印最后一行文本。我在一个 .txt 文档中有 3 行文本,我将其打开为一个数组,如上所述,并将其拆分为“\n”,然后将其写入 textctrl,但只有最后一行出现在 textctrl 中。跨度>
    • def checkBtnClick(self, e): urlList = self.myList for i in (urlList): for j in i.split("\n"): self.urlFld.SetValue(j)
    • SetValue 只是覆盖控件中的整个值。改用 AppendText:wxpython.org/docs/api/wx.TextCtrl-class.html
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-06
    • 1970-01-01
    • 2015-12-04
    • 2010-11-17
    • 2021-05-15
    • 2021-09-14
    相关资源
    最近更新 更多