我有大型数据库,正在使用python中的sql查询将数据写入csv文件。在sql数据库中,每一行都是手指ID的一系列空间信息。我有一个功能循环,该循环遍历列表中所有INDEX的每个FINGER。该查询工作正常,但是当我尝试为每个FINGER编写一个新的.csv文件时,这些文件要么为空白,要么仅包含一行。
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之后标有标签。