python - 按列对csv进行排序

标签 python csv sorting parsing

我想按日期对 CSV 表进行排序。开始只是一项简单的任务:

import sys
import csv

reader = csv.reader(open("files.csv"), delimiter=";")

for id, path, title, date, author, platform, type, port in reader:
    print date

我使用 Python 的 CSV 模块读取具有该结构的文件:

id;file;description;date;author;platform;type;port
  • 日期是 ISO-8601,因此我可以很容易地对其进行排序而无需解析:2003-04-22 e。 g.
  • 我想按日期排序,最新条目优先
  • 如何让这个阅读器进入可排序的数据结构?我想通过一些努力,我可以制作一个日期列表:datelist += date,拆分和排序。但是我必须重新识别 CSV 表中的完整条目。这不仅仅是对事物列表进行排序。
  • csv 似乎没有内置排序功能

最佳解决方案是让 CSV 客户端像处理数据库一样处理文件。我没有找到类似的东西。

我希望有人知道这里有一些不错的排序魔法;)

最佳答案

import operator
sortedlist = sorted(reader, key=operator.itemgetter(3), reverse=True)

或使用 lambda

sortedlist = sorted(reader, key=lambda row: row[3], reverse=True)

关于python - 按列对csv进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2100353/

相关文章:

python - Holoviews Heatmap 为每个点指定颜色

python - 比较循环中相邻列中的重复行值以清理 pandas 中的数据

python - 如何在 Python 中将变量分配给字典中的值?

python - python中五对角矩阵的Cholesky优化

python - 寻找简单条件的指导

c# - 使用 C# Windows 表单将 csv 文件插入 mysql 数据库表

Excel VBA 集合合并排序

c++ - 在计算列表中获取前 n 项的最快方法是什么?

javascript - js根据相等列的id按不同列进行二次排序

python - 如何在后台启动和运行外部脚本?