Python 3.x 将变量dicts导出到csv时有空行
在下面的示例代码中,创建并附加到的.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'
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
似乎没有任何区别。