我有一個巨大的數據文件(〜2 G),需要分割成奇數行和偶數行,分別處理並寫入兩個文件,我不想讀取整個文件放入RAM中,所以我認爲一個發生器應該是一個合適的選擇。總之我想做這樣的事情:使用Python分隔奇數行和偶數行
lines = (l.strip() for l in open(inputfn))
oddlines = somefunction(getodds(lines))
evenlines = somefunction(getevens(lines))
outodds.write(oddlines)
outevens.write(evenlines)
這可能嗎?顯然,索引將無法正常工作:
In [75]: lines[::2]
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
/home/kaiyin/Phased/build37/chr22/segments/segment_1/<ipython-input-75-97be680d00e3> in <module>()
----> 1 lines[::2]
TypeError: 'generator' object is not subscriptable
這是很好,很容易理解。只有函數名稱應該切換,因爲python索引從0開始計數。:D,謝謝! – qed