python - 循环遍历文本文件,readline() 构造在大文件上失败

标签 python file-io

在 Python 2.6 和 2.7 中,我认为这两个结构是相同的:

方法A

i=0
f=open('fred.txt','r')
for line in f.readline():
    i+=1
print i

方法B

i=0
f=open('fred.txt','r')
for line in f:
    i+=1
print i

然而,当 fred.txt 增长到 74,000 行,每行长度为 2,684 个字符时,方法 A 打印 2685,而 方法 B 打印 74000。显然,方法B 是首选,但为什么方法 A 对小文件有效,对大文件无效?

最佳答案

打错了,应该是f.readlines()。您正在阅读一行并循环遍历该行中的每个字符。

这两种方法(readlines 与直接遍历文件)应该给出相同的结果,但 readlines 会将全部内容存储在内存中。

关于python - 循环遍历文本文件,readline() 构造在大文件上失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4568171/

相关文章:

java - 我应该序列化 keyPressed 吗?

c++ - 在 C++ 中读取和写入同一个二进制文件

Java复制文件扭曲文件

python - Sytanx错误: Invalid Sytax

Python,pandas 根据停止条件找到每一行的长度

python - ValueError : Error when checking input: expected conv2d_1_input to have 4 dimensions, 但得到形状为 (120, 1) 的数组

C# File.ReadAllLines 不中断换行

c++ - 使用 seekg 读取二进制数据失败

python - 如何在 Odoo v15 CE 中从 python 注册发票付款

python - 在 Python 中,如何将列表列表中的字符串转换为其他类型,例如整数、 float 、 bool 值等?