2015-02-17 2 views
0

Я хотел бы открыть CSV файл со следующей структурой:WxPython - открывать, редактировать и сохранять CSV-файл в wx.grid

value1;value2 
value3;value4 
value5;value6 

Содержание файла должно отображаться в Wx. Таблица. Насколько я все закончен. Вот мой код:

class FormLohnarten(wx.Frame): 
    """""" 

    def __init__(self): 
     """Constructor""" 
     wx.Frame.__init__(self, parent=None, title="Konvertierungstabelle", size=(650,320)) 
     panel = wx.Panel(self) 
     content = {} 
     with open ("../../data/lohnarten.csv", "r") as f: 
      reader = csv.reader(f, delimiter=";") 
      for i in reader: 
       content[i[0]] = i[1] 

     self.myGrid = gridlib.Grid(panel) 
     self.myGrid.CreateGrid(len(content), 2) 
     self.myGrid.Bind(gridlib.EVT_GRID_CELL_CHANGED, self.change_value) 
     spalte = 0 
     for i in content: 
      self.myGrid.SetCellValue(spalte,0,i) 
      self.myGrid.SetCellValue(spalte,1,content[i]) 
      spalte += 1 
     print self.myGrid.GetCellValue(0,0) 
     self.myGrid.AppendRows() 
     sizer = wx.BoxSizer(wx.VERTICAL) 
     sizer.Add(self.myGrid) 
     panel.SetSizer(sizer) 

     dlg.ShowModal() 
     dlg.Destroy() 

Теперь я хочу, чтобы изменить значение в этой таблице и сохранить соответственно снова в том же файл CSV. У вас есть хорошие идеи, как я мог бы это реализовать?

ответ

1

В значительной степени противоположность чтению данных должна быть выполнена. IOW, извлеките значения из сетки, создайте cvs.writer и используйте его для записи значений данных в файл по строке за раз. Обратите внимание, что csv не обрабатывает unicode, но, вытаскивая значения из сетки, вы должны преобразовать их в строки ascii или utf-8.

Смежные вопросы