我正在使用pandas库将mysql数据库的内容写入csv文件。
但是当我编写CSV时,其他所有行都是空白:
此外,它在我不需要的左边打印行号。第一列应该是“帐号”。
这是我的代码:
destination = 'output_file.txt'
read_sql = """ SELECT LinkedAccountId,ProductName,ItemDescription,ResourceId,UnBlendedCost,UnBlendedRate,Name,Owner,Engagement FROM billing_info ;"""
fieldnames = ['Account Number', 'Product Name', 'Item Description', 'Resource ID', 'UnBlended Cost', 'UnBlended Rate', 'Name', 'Owner', 'Engagement']
# Open the file
f = open(destination, 'w')
cursor.execute(read_sql)
while True:
# Read the data
df = pd.DataFrame(cursor.fetchmany(1000))
# We are done if there are no data
if len(df) == 0:
break
# Let's write to the file
else:
df.to_csv(f, header=fieldnames)
为什么在带有数据的行之间打印空白行?如何获取没有文件行且左边没有行号列的文件?
答案 0 :(得分:2)
看看to_csv的选项:https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.to_csv.html
为方便起见,我在此处发布了一些感兴趣的项目:
line_terminator:字符串,可选
在输出文件中使用的换行符或字符序列。默认为os.linesep,这取决于此操作系统 方法被称为(对于Linux为'n',对于Windows为'rn')。
和
index:布尔值,默认为True
写行名(索引)。
可能是您要找的东西。至于空行,请尝试明确指定一个换行符:
df.to_csv(f, header=fieldnames, index=False, line_terminator='\n')