Интеграция моего кода с графическим интерфейсом 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