Запрашивая базу данных SQLite3 и записывая каждый запрос в .csv, все записанные файлы остаются пустыми. - PullRequest
0 голосов
/ 04 июля 2019

У меня есть большие базы данных, для которых я использую 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, которому он соответствует.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...