我想迭代整个文件的每一行.一种方法是通过读取整个文件,将其保存到列表中,然后浏览感兴趣的行.这种方法使用了大量内存,所以我正在寻找替代方案.
我的代码到目前为止:
for each_line in fileinput.input(input_file):
do_something(each_line)
for each_line_again in fileinput.input(input_file):
do_something(each_line_again)
Run Code Online (Sandbox Code Playgroud)
执行此代码会显示错误消息:device active.
有什么建议?
目的是计算成对的字符串相似性,意味着对于文件中的每一行,我想与每隔一行计算Levenshtein距离.
我有多个3GB制表符分隔文件.每个文件中有2000万行.所有行必须独立处理,任何两行之间没有关系.我的问题是,什么会更快A.使用逐行阅读
with open() as infile:
for line in infile:
Run Code Online (Sandbox Code Playgroud)
或者B.以块的形式将文件读入内存并进行处理,一次说250 MB?
处理不是很复杂,我只是将column1中的值抓到List1,将column2抓到List2等.可能需要一起添加一些列值.
我在具有30GB内存的Linux机器上使用python 2.7.ASCII文本.
有什么方法可以加速并行?现在我正在使用前一种方法,而且过程非常缓慢.使用任何CSVReader模块都可以提供帮助吗?我不必在python中使用它,任何其他语言或数据库使用的想法都是受欢迎的.谢谢.