Python将结果写入文件

use*_*228 0 python

我有以下脚本,感谢大家的帮助几乎完成,因为它现在打印出结果到屏幕.我还想添加一个步骤,它将采用相同的屏幕输出并将其转储到文本文件中.

我以为这是完成的 file.write()

但不知道如何让它将结果中的信息写入文件.请帮助,我是python的新手所以我有点迷失并试图从书中弄明白.

现在打印出来但只是查询返回的最后一行.最终它可能只是打印一行然后一次又一次地覆盖它所以我需要它来打印整个获取全部或结果

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()
Run Code Online (Sandbox Code Playgroud)

jdi*_*jdi 10

"结果"元组中的每个"行"都是一个记录元组.您希望如何格式化此数据取决于您,但在最基本的级别,您可以将其转换为字符串str(row)

现在去阅读有关如何读写文件的python文档:http:
//docs.python.org/tutorial/inputoutput.html

更新

参考您的新代码示例,您正在执行for循环并打印每一行,然后您打开一个文件,并且只写入从for循环中分配的行的最后一个值.打印的for循环与您执行的写入操作无关.row已被分配了每个值results,但您只使用了最后一个赋值,一次.

你应该做的是首先打开文件,然后开始循环,写入行的每个值:

with open('test.txt', 'w') as f:
    for row in results:
        print row
        f.write("%s\n" % str(row))
Run Code Online (Sandbox Code Playgroud)

如果您使用with上下文,它将在您离开该范围后自动关闭该文件.使用str您可以使用字符串格式,而不是仅转换为字符串,并添加换行符.