Сохранение и импорт данных из qtablewidget в\из csv файла
В проекте есть несколько таблиц, qtablewidget (для примера использую 2). В этих таблицах первая колонка даты в любом формате (ДД/ММ/ГГ или ДД-ММ-ГГ), в остальных положительные float или 0(представленный ниже код может импортировать и пустые ячейки). С помощью следующих функция я сохраняю в импортирую данные из\в qtablewidget в\из csv файла:
def save_function(self):
sfile=str(QFileDialog.getExistingDirectory(self,"Select Directory"))
if sfile!= "":
date = time.strftime("%d-%m-%Y")
filename='2 № 1 від {}.csv'.format(date)
filepath=os.path.join(sfile, filename)
with open(filepath, "w", newline='') as csvfile:
writer = csv.writer(csvfile, dialect='excel', lineterminator='\n')
columns_N = range(self.ui.table_Level_N.columnCount())
columns_L = range(self.ui.table_Level_L.columnCount())
for row in range(self.ui.table_Level_N.rowCount()):
writer.writerow(self.ui.table_Level_N.item(row, column).text() for column in columns_N)
for row in range(self.ui.table_Level_L.rowCount()):
writer.writerow(self.ui.table_Level_L.item(row, column).text() for column in columns_L)
def load_function(self):
fname,filter=QFileDialog.getOpenFileName(None,"Select a file...", "", "CSV files (*.csv)")
if fname!= "":
with open(str(fname), 'r') as file:
reader = csv.reader(file)
for row, values in enumerate(reader):
for column, value in enumerate(values):
self.ui.table_Level_N.setItem(
row, column, QtWidgets.QTableWidgetItem(value))
for row, values in enumerate(reader):
for column, value in enumerate(values):
self.ui.table_Level_L.setItem(
row, column, QtWidgets.QTableWidgetItem(value))
Где table_Level_N и table_Level_L мои таблицы. Сохранения происходит удачно, вид показан на скриншоте. Но при попытке загрузки и вставки в таблицу, вставляется только 1я таблица table_Level_N, а 2я, хоть и данные есть в csv, не вставляется. Подсказали что проблема может быть в том что with open(str(fname), 'r') as file: reader = csv.reader(file) заполнив 1ю таблицу заканчивают проход файла, и нужно сделать вот так:
def load_function(self):
fname,filter=QFileDialog.getOpenFileName(None,"Select a file...", "", "CSV files (*.csv)")
if fname!= "":
with open(str(fname), 'r') as file:
reader = csv.reader(file)
for row, values in enumerate(reader):
for column, value in enumerate(values):
self.ui.table_Level_N.setItem(
row, column, QtWidgets.QTableWidgetItem(value))
with open(str(fname), 'r') as file:
reader = csv.reader(file)
for row, values in enumerate(reader):
for column, value in enumerate(values):
self.ui.table_Level_L.setItem(
row, column, QtWidgets.QTableWidgetItem(value))
но теперь во 2й таблицу данные такие же как в 1й, а не те что в файле. 