2017-12-21 22 views
0
#!/usr /bin/python 
# -*- coding: utf-8 -*- 
import wx 
import os  

class RandomObj(object): 

    def __init__(self, name): 
     self.name = name 
class TreeExample(wx.Frame): 

    def __init__(self): 
     wx.Frame.__init__(self, None, title='Database', size=(200, 130)) 
     self.tree = wx.TreeCtrl(self, size=(200, 100)) 
     root = self.tree.AddRoot('Database') 
     self.tree.AppendItem(root, 'Class A') 
     files = [] 
     for (dirname, dirnames, filenames) in \ 
      os.walk('D:/Database/Class A'): 

      # print path to all subdirectories first. 

      for subdirname in dirnames: 
       files.append(os.path.join(dirname, subdirname)) 
       # print path to all filenames. 
       for filename in filenames: 
        self.item = files.append(os.path.join(dirname, 
          filename)) 
        self.tree.AppendItem(self.tree.GetLastChild(root), 
          filename) 
     self.sel = [] 
     for (i, j) in enumerate(files): 
      if j.endswith('.txt'): 
       self.sel.append(j) 
     print self.sel 
     self.Bind(wx.EVT_TREE_ITEM_ACTIVATED, self.OnActivated, 
        self.tree) 
    def OnActivated(self, event): 
     value = event.GetItem() 
     f = open(value, 'r') 
     lines = f.readlines() 
     print lines[0] 
     print lines[1] 
     print 'Double clicked on', self.tree.GetItemText(value) 

「の値」私は()treeitemidされ開くために渡すためにしようとしているが、それは私はあなたが戻っツリーまで歩かなければならないと思うファイルパスwxpythonを使用してテキストファイルの行を読み込むためのツリーディレクトリからファイルパスを取得する方法..?

+0

'値= self.tree.GetItemText(event.GetItem())より良い答えを待つようにしたいかもしれないがこれは、動作しているようです! –

+0

@RolfofSaxonyエラーが発生しました。IOError:[Errno 2]そのようなファイルやディレクトリがありません:u'Gypsum.txt ' –

+0

同じディレクトリでプログラムを実行しているとします。 –

答えて

0

が必要です。
あなたは `あなたは、ほとんどがあった

#!/usr/bin/python 
# -*- coding: utf-8 -*- 
import wx 
import os 

class RandomObj(object): 

    def __init__(self, name): 
     self.name = name 

class TreeExample(wx.Frame): 

    def __init__(self): 
     wx.Frame.__init__(self, None, title='Database', size=(200, 130)) 
     self.tree = wx.TreeCtrl(self, size=(200, 100)) 
     root = self.tree.AddRoot('/home/public') 
     self.root = '/home/public' 
     self.tree.AppendItem(root, 'Music') 
     files = [] 
     for (dirname, dirnames, filenames) in \ 
      os.walk('/home/public/Music'): 

      # print path to all subdirectories first. 

      for subdirname in dirnames: 
       files.append(os.path.join(dirname, subdirname)) 
       # print path to all filenames. 
       for filename in filenames: 
        self.item = files.append(os.path.join(dirname, 
          filename)) 
        self.tree.AppendItem(self.tree.GetLastChild(root), 
          filename) 
     self.sel = [] 
     for (i, j) in enumerate(files): 
      if j.endswith('.txt'): 
       self.sel.append(j) 
     #print self.sel 
     self.Bind(wx.EVT_TREE_ITEM_ACTIVATED, self.OnActivated, 
        self.tree) 

    def OnActivated(self, event): 
     value = self.tree.GetSelection() 
     fname = [] 
     while self.tree.GetItemParent(value): 
      fname.insert(0,"/"+self.tree.GetItemText(value)) 
      value = self.tree.GetItemParent(value) 
     fname.insert(0,self.root) 
     the_file = "".join(fname) 
     f = open(the_file, 'r') 
     lines = f.readlines() 
     print (lines[0]) 
     print (lines[1]) 
     print ('Double clicked on', str(the_file)) 
if __name__ == '__main__': 
    app = wx.App() 
    frame = TreeExample() 
    frame.Show() 
    app.MainLoop() 
+0

グローバル変数とそれに割り当てられたファイル[]を入力し、変数を直接関数に渡します。ありがとう...ザクセンの@Rolf –

関連する問題