2016-12-30 54 views
3

我想在Nim中逐行加載一個大文件。我試着下面的代碼片段:如何在Nim中逐行加載文件?

for line in lines "largefile.txt": 
    echo line 

然而,這種加載整個文件largefile.txt到內存中,當文件非常大這是不可行> 30GB。

我如何可以遍歷一個大的文件,而只持有一個行內存?

+0

我不確定那會怎麼樣,除非你在某處導入一個非標準的'lines'迭代器。 [在LIB/system.nim]的一個(https://github.com/nim-lang/Nim/blob/09b6d8c0ca5f9b5590e58d90b987975f36df8dd6/lib/system.nim#L3044)逐行讀取文件中的行,就像你想要它。當我用大文件測試時,內存使用情況確實保持不變,如預期的那樣。 –

回答

2

的確,Reimer Behrends是對的。 lines函數按預期工作。

的問題是,我的文件都才躲過換行符。因此,Nim(正確)將該文件讀取爲一條大行。