【问题标题】:delimiter to split csv file is not working in Python分隔 csv 文件的分隔符在 Python 中不起作用
【发布时间】:2016-03-12 14:13:40
【问题描述】:

我有一个 csv 文件,其中包含以下条目:

00020000001000,gl3.h5,2,5,0,0,0,"1:15:29 PM",60.2350934,-138.29382304 etc.
00020010000000,gl3.h5,2,8,0,0,0,"1:16:24 PM",60.09523934,-138.2322304 etc.
00020000100000,gl3.h5,2,11,0,0,0,"1:17:05 PM",60.0345934,-138.2932582304 etc.
00020000000100,gl3.h5,2,4,0,0,0,"1:18:19 PM",60.090934,-138.2235382304 etc.

现在,我想按第 3 列中的整数对该文件中的行进行排序(例如第一行中的 5,第二行中的 8)。

到目前为止,我的代码如下所示:

import csv
with open("line 1.csv", "rb") as f:
    reader = csv.reader(f, delimiter = ",")
    sort = sorted(reader, key=lambda x: int(x[3]), reverse=True)
    print(sort)

但是当我运行代码时,它显示IndexError: list index out of range"

为什么分隔符, 不起作用?

谢谢!

【问题讨论】:

    标签: python sorting csv


    【解决方案1】:

    您的 csv 中可能有空行。过滤掉它们:

    import csv
    with open("line 1.csv", "rb") as f:
        reader = csv.reader(f, delimiter = ",")
        data = [entry for entry in reader if entry]
        sort = sorted(data, key=lambda x: int(x[3]), reverse=True)
        print(sort)
    

    【讨论】:

    • splitlines() 前面的 s 是什么意思?它适用于 x[0],但不适用于任何其他索引
    • 对不起。剩下的形式我的测试。我使用了多行字符串而不是文件。固定。
    猜你喜欢
    • 2021-12-17
    • 1970-01-01
    • 2015-08-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-06
    • 1970-01-01
    相关资源
    最近更新 更多