簡體   English   中英

如何使用 fetchmany 將 mysql 表轉儲到 csv 中

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM