wxPython - открывает, редактирует и сохраняет csv-файл в wx.grid
Я хотел бы открыть файл CSV со следующей структурой:
value1;value2
value3;value4
value5;value6
Содержимое файла должно отображаться в wx.table. Насколько я все сделал. Вот мой код:
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
пока не обрабатывает юникод, поэтому, когда вы извлекаете значения из таблицы, вам следует преобразовать их в строки ascii или utf-8.