У меня есть большие базы данных, для которых я использую SQL-запрос в Python для записи данных в CSV-файлы. В базе данных sql каждая строка представляет собой последовательность пространственной информации для идентификатора пальца. У меня есть функциональный цикл, который перебирает каждый FINGER для всех INDEX в списке. Запрос работает правильно, однако, когда я пытаюсь написать новый файл .csv для каждого FINGER, файлы либо остаются пустыми, либо содержат только одну строку.
INDEX = ([44,48,50,55,56,57], [49,54,57,61,62,64])
FINGER = ('rt100', 'rt101')
for i,Y in enumerate(FINGER):
for x in INDEX[i]:
data = c.execute(
"SELECT x,y, CAST( (direction*180/3.142)as INT),CAST(quality*100 as INT) from UTS_7_fingerprints where finger like ? and ind = ?",
[Y,x])
for row in data:
print row
csv_path = "X.csv"
with open('X.csv', "w") as csv_file:
writer = csv.writer(csv_file, delimiter= " ")
for row in data:
writer.writerows([row])
os.rename ("X.csv",Y)
Я ожидаю, что это вернет файл, который выглядит следующим образом:
372,402,281,83
394,303,303,97
415,422,123,86
458,328,292,95
464,487,112,96
483,389,303,95
Тем не менее, каждый файл создается и назван в честь FINGER, но является пустым.
При печати строки получаю:
(405, 378, 281, 93)
(430, 270, 303, 32)
(444, 398, 123, 82)
(489, 299, 314, 67)
(495, 468, 123, 88)
(512, 368, 314, 71)
(405, 378, 281, 94)
(430, 264, 303, 67)
(447, 400, 123, 83)
(489, 292, 314, 68)
(495, 463, 123, 90)
(512, 360, 326, 71)
Где каждые 6 строк должен быть новый файл .csv, помеченный после FINGER, которому он соответствует.