如何使用.to_csv()

时间:2019-02-01 10:15:33

标签: python-3.x pandas

我的下一个.txt文件为

Red Blue Green, 1354,8676,38
------------------------------
Yellow Or,ange Black

TU    CD    CL
0.26  0.265 0.25
-------------------------------

我需要阅读。为此,我使用pd.read_csv()并避免使用skipfooter = 2参数的最后两行。所以,我有:

path_file1 = pathlib.Path.cwd() / ("folder1") / ("file1.txt")

df_folder1 = pd.read_csv(str(path_file1), engine = 'python', index_col = False, skipfooter = 2)

然后,我想使用.to_csv()将所有信息粘贴到其他文件中:

path_file2 = pathlib.Path.cwd() / ("folder1") / ("file2.txt")

df_folder2 = df_folder1.to_csv(str(path_file2), index = False, quoting=csv.QUOTE_NONE)

但是,我最终得到以下结果:

Red Blue Green, 1354,8676,38
------------------------------,,,
Yellow Or,ange Black,,
TU     CD   CL,,,

因此我无法消除每行末尾的逗号,因此省略了空行。是否可以使用to_csv()来实现?我应该在此线程中使用csv.writer()吗? write csv file with double quotes for particular column not working是否有可能指定换行符?

1 个答案:

答案 0 :(得分:1)

您面临的问题是csv是表格数据的表示形式。

  

在计算中,逗号分隔的值文件是带分隔符的文本文件   使用逗号分隔值。 CSV文件存储表格数据   以纯文本格式。文件的每一行都是一个数据记录。每条记录   由一个或多个字段组成,用逗号分隔。使用   作为字段分隔符的逗号是此文件名称的来源   格式。 https://en.wikipedia.org/wiki/Comma-separated_values

行尾的其他逗号表示该列中的空字段。即使我不确定您提出的要求是不可能的,我也会认为这超出了规格。

因此,我建议,如果您真正想要的是从该文件中删除最后一行,请使用

读取文件
with open('file') as f:
    for i in range(len(f.readlines()) - 2):
        # do what ever you want

并将其写回到文件中。