这是我的下载地址,文件名是'kosarak'
http://fimi.uantwerpen.be/data/
我的解析代码是:
parsedDat = [line.split() for line in open('kosarak.dat').readlines()]
我需要这些数据作为一个整体来运行一些方法,所以一行一行地阅读并在每一行上进行操作不适合我在这里。
文件只有30 MB,我的电脑至少剩下10G内存和30+G硬盘位置,所以我想应该没有任何资源问题
仅供参考:我的python版本是2.7,我在Spyder中运行我的python。我的操作系统是视窗 10。
PS:你不需要使用我的解析代码/方法来完成这项工作,只要你能将数据从文件获取到我的python环境,这将是完美的。
也许这可能会有所帮助。
with open('kosarak.dat', 'r') as f: # Or 'rb' for binary data.
parsed_data = [line.split() for line in f]
不同之处在于,您的方法一次读取文件中的所有行,然后处理每一行(实际上需要 2 倍内存,一次用于文件数据,一次用于解析的数据,所有这些必须同时存储在内存中(,而这种方法只是逐行读取文件,只需要内存即可生成parsed_data
。
此外,您的方法没有显式关闭文件(尽管您可能只是没有显示代码的那部分(。 此方法使用上下文管理器(with expression [as variable]:
(,一旦with
块终止,即使在错误之后,它也会自动关闭对象。 见PEP 343。