csv阅读旧方式

时间:2017-03-14 11:14:35

标签: python python-3.x csv

我完全了解如何使用Python以正常方式读取csv文件。我也知道我可以解析列表(例如["a, b, 123"])。两者都是因为发电机和产量而起作用。

我的问题略有不同:

  • 输入为dict,如{"line": "a, b, 123", "line_count": 555, ..}
  • 输出应与dict属性相同"csv"延长,如{"line": "a, b, 123", "line_count": 555, .., "csv": ["a", "b", "c"]}

最简单和非常传统的方法是(伪代码):

def my_csv_reader(myconfig):
    my_reader = CsvReader(**myconfig)
    for line in some_gen_providing_the_list_of_dicts:
        line["csv"] = csv.reader(line["line"])  (1)
        yield line

我实际上可以通过将标记为(1)的行替换为:

来使用此方法
line["csv"] = csv.reader([line["line"]], **myconfig)  (1)

但是我需要解析500 mio行,并且为每一行创建和初始化CSV对象可能会产生大量垃圾,实际上是不必要的。我也不喜欢标题行,DictReader等将不再内置。如果我只能:

  • 创建一个csv reader对象。
  • 调用一个枯燥的老式to_csv(my_line)函数,返回该行的csv。

Python 3.x在某种程度上是否可行?

1 个答案:

答案 0 :(得分:0)

你是说这个吗?

cognitoUser