当前位置: 首页 > 知识库问答 >
问题:

如何停止在csv文件末尾写空行-熊猫

仇睿
2023-03-14

当保存数据到csv,data.to_csv('csv_data',sep=',',编码='utf-8',头=False,index=False),它会在csv文件的末尾创建一个空行。

你如何避免这种情况?

它与line_terminator有关,它的默认值是n,用于新行。

有没有办法指定line_terminator以避免在最后创建空行,或者我需要读取csv文件,删除空行并保存它?

不熟悉熊猫。我们将感谢您的帮助,提前感谢!

共有3个答案

越国源
2023-03-14
file_out = r'c:\your_output_file_path\file_name.csv'
df.to_csv(file_out)
file_data = open(file_out, 'rb').read()
open(file_out, 'wb').write(file_data[:-2])

df.to_csv()函数有一个名为line_terminator的参数,默认值为\n。这个新的行字符是当前的问题。

上面的代码:
1)像正常情况一样将数据帧写入文件
2)打开文件并将字节数据读入文件\u数据变量
3)将文件\u数据变量写回同一文件,但用拼接:文件\u数据[:-2]修剪“\n”

龙德润
2023-03-14

由于某种原因,当我尝试它时,线路终结者不起作用。(它给出了一个错误,称行_terminator是一个无法识别的关键字参数。)

然而,这将实现以下目的:

    df.to_csv(path)
    with open(path) as f:
        lines = f.readlines()
        last = len(lines) - 1
        lines[last] = lines[last].replace('\r','').replace('\n','')
    with open(path, 'w') as wr:
        wr.writelines(lines)
别旻
2023-03-14

一种方法是使用默认的行结束符(\n)保存除最后一个条目之外的数据,并在最后一行附加行结束符=“)。

data1 = data.iloc[0:len(data)-1]
data2 = data.iloc[[len(data)-1]]
data1.to_csv('csv_data', sep=',', encoding='utf-8', header= False, index = False)
data2.to_csv('csv_data', sep=',', encoding='utf-8', header= False, index = False,mode='a',line_terminator="")

 类似资料:
  • 我正在使用2018.1.5社区版的intellij编辑器来编辑纯文本文件。 我没有使用项目。我在Linux上启动它,如下所示: 其中my_file.mpl是纯文本文件。 这很有效,除了一个大问题。 我需要在一些行的末尾留一个空白。i、 在文件中某行的行字符后,我插入一些白色。通过执行“查看”,我看到空间在那里- 但一旦我保存了文件,这些空白就会从行尾删除。 这给我带来了一个问题(由于其他原因,当其

  • 问题内容: 在我当前的项目中,我们总是在Java源文件的末尾插入一个空的新行。我们还使用CheckStyle(具有错误级别)来强制执行此操作。 我一直在寻找这个主题很长时间,但是不幸的是,我找不到任何令人信服的理由。似乎其他开发人员对此无动于衷,因为他们只是选中了Eclipse formatter中的一个复选框,并且它是自动完成的。但是我仍然不知道为什么需要它,为什么它很重要。所以我的问题是: 为

  • 目前我正在测试PhpStorm IDE。它真的很棒,除了一个功能。它不会从文件末尾删除空行。现在删除不需要的空格,但末尾的空行不会删除。 这对我来说真的很烦人。我能改变这种行为吗?

  • 问题内容: 我正在解析CSV文件,但是最后一行的最后9列为空,只有一行,并且用逗号分隔的字符串会忽略其余的空列。 这是演示此代码的代码: 列的大小为20,应为29。任何想法? 问题答案: 查看有关以下内容的文档: 该方法的工作方式就像通过调用带有给定表达式且限制参数为零的二参数拆分方法。因此,结尾的空字符串不包括在结果数组中。 因此,您需要查看其他方法的选项 limit参数控制应用图案的次数,因此

  • 问题内容: 我正在使用opencsv,并希望通过多个会话写入文件。但是,每次我启动新的CSVWriter时,旧文件都会被删除。我可以更改CSVWriter的行为以在文件末尾写入而不是替换文件吗? 问题答案: FileWriter中有一个选项而不是CSVWriter可以附加在文件末尾。 此代码使其工作:

  • 我正在使用Goland来编写我的grpc应用程序。生成我的原型文件后,文件末尾不存在尾随换行符。有没有办法在 IDE 中启用此功能?