-1
我完全知道如何用Python正常的方式閱讀csv文件。我也知道我可以解析列表(例如["a, b, 123"]
)。兩者都因發電機和產量而工作。csv閱讀舊的方式
我的問題是稍有不同:
- 輸入是
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.0的某種可能嗎?
不,傳統方法是將CSV閱讀器從行迭代中移出,如文件對象,而不是爲每行創建單獨的閱讀器。 – TigerhawkT3