python写入文件正在破碎

时间:2015-09-10 06:26:26

标签: python mysql csv

我正在编写python脚本来获取mysql数据库行并复制到excel文件

我正在尝试的代码2.7.6:

from __future__ import print_function
import MySQLdb as mdb

conn = mdb.connect("localhost","username","passwd","db")
table = open("table.csv" , 'w')
with conn:    
    query = "SELECT NAME FROM mytable WHERE H_ID= 5 ORDER BY NAME;"        
    cursor = conn.cursor()
    cursor.execute(query)
    for item in range(cursor.rowcount):            
        row = cursor.fetchone()
        print(row[0],file=table)

如果我在mysql中执行该查询意味着我将获得446行并且在python shell [idle]上打印时也会得到正确的结果,但是当我尝试将输出复制到文件时我能够看到只有341行。可能是什么问题。?

1 个答案:

答案 0 :(得分:1)

我不知道究竟是什么问题,但是当我用关键字删除并手动关闭文件时,它已得到解决,

下面的代码工作正常。

from __future__ import print_function
import MySQLdb as mdb

conn = mdb.connect("localhost","username","passwd","db")
table = open("table.csv" , 'w')
query = "SELECT NAME FROM mytable WHERE H_ID= 5 ORDER BY NAME;"        
cursor = conn.cursor()
cursor.execute(query)
for item in range(cursor.rowcount):            
    row = cursor.fetchone()
    print(row[0],file=table)
table.close()