每天我都需要查询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到供应商。感谢您的帮助。
答案 0 :(得分:0)
我假设您从Python 2.x示例获得了代码,并且现在以3.x版本运行。 csv模块界面已更改,现在必须使用以下命令打开文件:
fout = open('filename', 'w', newline='')
该错误是由于您以二进制模式打开文件而引起的,它只希望字节字符串而不是unicode字符串,而unicode字符串是Python 3中的正常字符串。