我想遍历整个文件的每一行。一种方法是读取整个文件,将其保存到列表中,然后遍历感兴趣的行。此方法使用大量内存,因此我正在寻找替代方法。
到目前为止我的代码:
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)
执行此代码会给出一条错误消息: device active
。
有什么建议么?
目的是计算成对的字符串相似度,这意味着对于文件中的每一行,我想计算与其他每一行的 Levenshtein 距离。
2022 年 11 月编辑:这个问题 8 个月后提出的相关问题有很多有用的答案和评论。要更深入地了解 python 逻辑,请阅读相关问题 How should I read a line-by-line in Python?
原文由 384X21 发布,翻译遵循 CC BY-SA 4.0 许可协议
读取文件的正确、完全 Pythonic 方式如下:
with
语句处理打开和关闭文件,包括是否在内部块中引发异常。for line in f
将文件对象f
视为可迭代对象,它会自动使用缓冲 I/O 和内存管理,因此您不必担心大文件。