2017-12-15 1 views
0

나는 파이썬에 매우 익숙하다. 나는 이번 학기에 생물 정보학 수업을 들었고, 나의 최종 프로젝트를 위해 미래에 나의 연구실에서 사용할 수있는 앱을 만들고 싶다. 필자는 PyCharm에서 실제 프로그램을 만들고 테스트했지만 GUI로 통합하여 실행 파일을 만들어 IDE를 열지 않고도 누구나 사용할 수 있도록하려고합니다.내 코드를 wxglade GUI와 통합

지금까지 입력 파일의 경로를 가져 오는 버튼이있는 간단한 프레임이 있습니다. 이 경로를 가져 와서 이미 기존 코드에 삽입하고 싶습니다. class MyFrame(wx.Frame):에서 중첩 된 wxGlade 코드에서 :

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 블록 내에서 정의 된 어떤처럼 보인다. 그렇다면 GUI에 코드를 통합하는 방법은 무엇입니까? def OnOpenFileDialog 아래에 모두 붙여 넣기가 매우 추악하고 나쁠 것입니다. 나는 정말로 어디에서 시작해야할지 모른다. 죄송합니다.이 질문이 혼란 스럽다면 필요한 경우 명확히하려고 노력할 것입니다. 감사합니다

답변

1

read_file(filename)을 정의하고 OnOpenFileDialog

에서 호출하십시오.