我有下面的脚本,感谢大家的帮助,几乎完成了,因为它现在打印出的结果到屏幕上。我还希望添加一个步骤,将采取相同的屏幕输出,并将其转储到一个文本文件。
我以为这是用file.write()
完成的
但不知道如何将结果中的信息写入文件。请帮忙,我对python很陌生,所以我有点迷路了,想从书中找出答案。
现在打印出来了,但只是查询返回的内容的最后一行。最终,它可能只是打印一行,然后一次又一次地覆盖它,所以我需要它打印整个fetch all或results
import adodbapi
# Connect to the SQL DB
conn = adodbapi.connect("Provider=SQLOLEDB; SERVER=xx.x.xx.x; Initial Catalog=master_db;User Id=user; Password=pass; ")
curs = conn.cursor()
# Execute SQL procedure things_referencing"
curs.execute('util.things_procedure', )
results = curs.fetchall()
for row in results:
print row
f = open('test.txt', 'w')
s = str(row)
f.write(s)
f.close()
conn.close()
确实已经完成了file.write,但必须先打开该文件。所以您可以修改for循环如下
“results”元组中的每个“row”都是一个记录元组。如何格式化这些数据取决于您,但在最基本的级别上,您可以使用
str(row)
将其转换为字符串现在阅读python文档,了解如何读写文件:
http://docs.python.org/tutorial/inputoutput.html
更新
参考您的新代码示例,您正在执行for循环并打印每一行,然后您将打开一个文件,并且只写入从for循环分配给该行的最后一个值。打印的for循环与随后执行的写操作无关。
row
已经分配了results
的每个值,但是您只使用了最后一个分配的值,一次。您应该首先打开文件,然后开始循环,写入行的每个值:
如果您使用
with
上下文,一旦您离开该范围,它将自动为您关闭该文件。您可以使用字符串格式并添加换行符,而不是只使用str
转换为字符串。相关问题 更多 >
编程相关推荐