python如何打开一个大文件?

时间:2024-04-16 13:19:27
 1 with open(\'a.csv\',\'r\') as f:
 2 #1
 3     for i in f:
 4         print(i)
 5 #2
 6     while True:
 7         a = f.readline()
 8         if not a:
 9             break
10 #3
11     f.readlines()                

用with语句打开文件返回一个可以迭代的文件对象绑定在as后的变量f;

第一种:直接遍历文件对象,会自动使用IO缓存和内存管理,是一种很好的方法;

第二种:调用readline()方法,一次读取一行,也不会占用太大内存,但代码显得臃肿,而且,虽然readline()方法是用C实现的,但相比于1的直接操作文件对象,速度上并没有明显的提升;

第三种:调用readlines()方法,返回的是一个包含所有文件元素的列表,如果文件很大(1个G),那就很占用内存,所以大文件情况下,最不推荐这种方法。

综上:推荐第一种写法,即直接遍历文件对象。

另外,还可以用pandas提供的分块读取功能,下一篇详细介绍。