您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

用Python排序CSV

用Python排序CSV

这是Alex的答案,经过重新设计以支持列数据类型:

import csv
import operator

def sort_csv(csv_filename, types, sort_key_columns):
    """sort (and rewrite) a csv file.
    types:  data types (conversion functions) for each column in the file
    sort_key_columns: column numbers of columns to sort by"""
    data = []
    with open(csv_filename, 'rb') as f:
        for row in csv.reader(f):
            data.append(convert(types, row))
    data.sort(key=operator.itemgetter(*sort_key_columns))
    with open(csv_filename, 'wb') as f:
        csv.writer(f).writerows(data)

我做的很蠢。我在IDLE中玩各种事情convert,几天前写了一个函数。我忘了自己写的,而且很长一段时间都没有关闭IDLE,所以当我写上面的代码时,我以为convert是内置函数。可悲的是没有。

这是我的实现,尽管John Machin的更好一些:

def convert(types, values):
    return [t(v) for t, v in zip(types, values)]

用法

import datetime
def date(s):
    return datetime.strptime(s, '%m/%d/%y')

>>> convert((int, date, str), ('1', '2/15/09', 'z'))
[1, datetime.datetime(2009, 2, 15, 0, 0), 'z']
python 2022/1/1 18:47:31 有328人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶