[英]How to dump mysql table into csv using fetchmany
我有一個很大的 mysql 表,我想使用 python 將它導出到 csv 文件。 但是,當我使用 cursor.fetchall() 時,我的筆記本電腦掛了,當我使用
cursor.execute("select * from table_name")
while True:
rows = cursor.fetchmany(1000);
while rows is not None:
with open(table_name + ".csv", "a+") as csvfile:
writer = csv.writer(csvfile, delimiter=',')
writer.writerow(rows)
csvfile.close()
循環不會停止,並且在 csv 文件中多次寫入相同的行。 如何一點一點地將mysql表移動到csv? 感謝您的幫助。
您正在使用永遠不會結束的 while 循環,因為沒有任何中斷條件。
請非常小心地使用 while 循環。
您可以嘗試以下代碼(假設行是記錄列表):
cursor.execute("select * from table_name")
rows = cursor.fetchall()
with open(table_name + ".csv", "a+") as csvfile:
writer = csv.writer(csvfile, delimiter=',')
for row in rows:
writer.writerow(row)
您可以執行此查詢以將任何表輸出到驅動器上所需位置的 .CSV 文件。
SELECT *
FROM tablename
INTO OUTFILE 'C:\data.csv'
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\n'
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.