sql2008表中的分隔文件txt文件

时间:2019-06-25 15:43:06

标签: python

每天我都需要查询sql2008并导出名称为+ date的文件。它必须是制表符分隔的文件。

出于各种原因,我无法使用BCP。我可以将数据导出为str等文本文件,但不能导出到制表符分隔的文件中。我知道我需要使用csv,但是如何使用?还有一种方法可以在制表符分隔的headers中将其删除?

Python代码:

fout = open('filename', 'wb')
writer = csv.writer(fout, dialect='excel-tab')

con = dbconnect.connectdb()
cursor = con.cursor()

sql="select * from table"

cursor.execute(sql)

for row in cursor.fetchall():
   writer.writerow(row)

我很好地连接到数据库,运行命令,但出现以下错误     writer.writerow(row) TypeError: a bytes-like object is required, not 'str'

我只需要删除选项卡中表中的所有内容,以便可以ftp到供应商。感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

我假设您从Python 2.x示例获得了代码,并且现在以3.x版本运行。 csv模块界面已更改,现在必须使用以下命令打开文件:

fout = open('filename', 'w', newline='')

该错误是由于您以二进制模式打开文件而引起的,它只希望字节字符串而不是unicode字符串,而unicode字符串是Python 3中的正常字符串。