Python 3.x 将变量dicts导出到csv时有空行

Python 3.x 将变量dicts导出到csv时有空行,python-3.x,pandas,Python 3.x,Pandas,在下面的示例代码中,创建并附加到的.csv文件中的每一行都是空的。这不是故意的,我不知道如何阻止它的发生。有没有办法抑制这种行为并将数据输出到每一行 例如: import pandas as pd for i in range(10): d = pd.DataFrame({'a':i+1*10, 'b':(i+1)**2}, index=[0]) # Save in csv with open('some_dict.csv', 'a', encoding='utf-8'

在下面的示例代码中,创建并附加到的.csv文件中的每一行都是空的。这不是故意的,我不知道如何阻止它的发生。有没有办法抑制这种行为并将数据输出到每一行

例如:

import pandas as pd

for i in range(10):
    d = pd.DataFrame({'a':i+1*10, 'b':(i+1)**2}, index=[0])
    # Save in csv
    with open('some_dict.csv', 'a', encoding='utf-8') as f:
        d.to_csv(f, header=f.tell()==0, index=False)

熊猫似乎不知怎么地把行分隔符弄错了,或者可能是因为您没有将文件作为文本文件打开。 我将尝试使用以下选项打开该文件:

open(..., mode='at', newline='\n')

您好,使用ftell()的代码很好-诀窍!如果我在我的机器上运行它,它不会插入空行。你是在linux还是mac上运行它?是否有可能它以某种方式将行分隔符弄错了?您已经试过打开(…,mode='at',newline='n')了吗?谢谢!奇怪,我只是在窗户上。但是实际上,
newline='\n'
参数修复了它,谢谢你的建议!如果你想把它作为一个答案,我会把它标记为解决方案OK,谢谢,我创建了一个答案。我猜你也从
mode='a'
改为
mode='at'
,对吧?如果可以省略
换行符
选项,请再次检查好吗?(现在我很好奇)。实际上情况似乎正好相反——重要的是
newline='\n'
。将
mode=a
更改为
mode=at
似乎没有任何区别。