2017-12-15 15 views
0

私はPythonの新機能です。私は今学期にバイオインフォマティクスクラスを受講しました。私の最終的なプロジェクトでは、将来私の研究室で使用できるアプリを作りたいと思っています。 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

から呼び出す