从sql server表写入行

时间:2015-02-04 18:46:15

标签: python pyodbc

我是python的新手。我无法弄清楚如何将sql server表行写入输出文件。我可以在屏幕上显示但不能将其写入文件。

import pyodbc
f.open(‘c:\python27\out.txt’,w)
cnxn = pyodbc.connect('DRIVER={SQL  Server};SERVER=localhost;DATABASE=vzw;trusted_connection=True')
cursor = cnxn.cursor()
cursor.execute ("select * from vzw.dbo.threcord")
row = cursor.fetchall()
print row  # displays row on screen
f.write     #what goes here to indicate the displayed row?

1 个答案:

答案 0 :(得分:1)

您可以使用csv module输出以逗号分隔的文件。

import pyodbc
import csv

cnxn = pyodbc.connect('DRIVER={SQL  Server};SERVER=localhost;DATABASE=vzw;trusted_connection=True')
cursor = cnxn.cursor()
cursor.execute("select * from vzw.dbo.threcord")
row = cursor.fetchall()

with open(r"c:\python27\out.txt", "w") as f:
    csv.writer(f).writerows(row)

关于我从您的代码中发生了哪些变化的一些注意事项:

  • 我只在查询运行后打开文件才能写入,而不是在程序开头。另外,我使用with语句打开文件。
  • 请注意,文件名是原始字符串(r,因为\是转义字符。
  • 需要引用文件模式。