Интеграция моего кода с графическим интерфейсом wxglade

Я очень плохо знаком с Python. В этом семестре я взял урок биоинформатики, и для своего финального проекта я хочу создать приложение, которое мы сможем использовать в своей лаборатории в будущем. Я создал и протестировал реальную программу в PyCharm, но я хочу интегрировать ее с графическим интерфейсом и создать исполняемый файл, чтобы его мог использовать любой, не открывая IDE.

Пока у меня есть простой кадр с кнопкой, которая получает путь для входного файла. Я хочу пойти по этому пути и вставить его в уже существующий код. От wxGlade код, вложенный в class MyFrame(wx.Frame)::

def OnOpenFileDialog(self, event):  # wxGlade: MyFrame.<event_handler>
    dlg = wx.FileDialog(self, message="Choose a file")
    if dlg.ShowModal() ==wx.ID_OK:
        f = dlg.GetPath()
        filename_input = re.sub("\\\\", "/", f)
    dlg.Destroy() 

Я хочу взять filename_input и поместите это здесь:

columns = defaultdict(list) # each value in each column is appended to a list
with open(filename_input) as file_object: # open the file
reader = csv.DictReader(file_object, delimiter='\t') # assign the file reader
for row in reader: # read a row as {column1: value1, column2: value2,...}
    for (k,v) in row.items(): # for each column (position) and value (residue)
        if v != '': # if the value isn't blank
            columns[k].append(v)  # append the residue to a list for that position

Но похоже, что-то определенное в OnOpenFileDialog Блок существует только с этим блоком. Так как же мне интегрировать мой код в графический интерфейс? Я чувствую, как вставить все это под def OnOpenFileDialog было бы очень некрасиво и плохо. Я действительно не знаю, с чего начать. Извините, если этот вопрос сбивает с толку, я постараюсь уточнить, если это будет необходимо. Спасибо

1 ответ

Решение

Определите метод read_file(filename) и позвони изнутри OnOpenFileDialog

Другие вопросы по тегам