【问题标题】:How to avoid double quotes at the end of lines with .to_csv()如何使用 .to_csv() 避免在行尾出现双引号
【发布时间】:2019-02-01 10:15:32
【问题描述】:

我有 .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() 将所有 tha 信息粘贴到其他文件中:

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 是否有机会指定行终止符?

【问题讨论】:

    标签: python-3.x pandas


    【解决方案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
    

    并将其写回文件。

    【讨论】:

    • 正如你所说,我不确定你不能用 to.csv() 实现这一点。感谢您的帮助。
    猜你喜欢
    • 2014-05-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多