python 如何读取超大的文件
在 Python 中读取超大的文件(例如,文件的大小大于系统内存)时,通常需要逐行或分块读取,以避免将整个文件加载到内存中,从而导致内存不足的问题。以下是几种常见的方法:
1. 使用 open 和迭代器逐行读取
这是最常见的方法。通过文件对象的迭代器,逐行读取文件。
with open('large_file.txt', 'r', encoding='utf-8') as file:
for line in file:
process_line(line) # 对每行进行处理
这种方式非常高效,因为它不会一次性将整个文件加载到内存,而是逐行读取。
2. 分块读取文件内容
如果需要以更大的块为单位读取,可以使用 read 方法指定块的大小。
with open('large_file.txt', 'r', encoding='utf-8') as file:
while True:
chunk = file.read(1024 * 1024) # 每次读取 1 MB
Python四种逐行读取文件内容的方法
下面是四种Python逐行读取文件内容的方法, 并分析了各种方法的优缺点及应用场景,以下代码在python3中测试通过, python2中运行部分代码已注释,稍加修改即可。方法一:readline函数
#-*- coding: UTF-8 -*-
f = open("./code.txt") # 返回一个文件对象
line = f.readline() # 调用文件的 readline()方法
while line:
#print line, # 在 Python 2中,后面跟 ',' 将忽略换行符
print(line, end = '') # 在 Python 3中使用
line = f.readline()
f.close()
优点:节省内存,不需要一次性把文件内容放入内存中
缺点:速度相对较慢
标签: python open fileinput readline readlines
python 文件操作方法
python 文件操作方法1 文件对象的方法 操作
2 file.close() 关闭文件
3 file.fileno() 返回文件的描述符(file descriptor ,FD, 整数值)
4 file.flush() 刷新文件的内部缓冲区
5 file.isatty() 判断 file 是否是一个类 tty 设备
6 file.nexta() 返回文件的下一行(类似于 file.readline() ), 或在没有其它行时
7 引发 StopIteration 异常
8 file.read(size=-1) 从文件读取 size 个字节, 当未给定 size 或给定负值的时候, 读
9 取剩余的所有字节, 然后作为字符串返回.如果打开模式无b,则read按字符读取,否则按字节读取
10 file.readline(size=-1) 从文件中读取并返回一行(包括行结束符), 或返回最大 size
11 file=open('test','ab')
12 file.write(bytes('hehe',encoding='utf-8')) 向文件写入字符串 (会覆盖原有数据,坑
13 file.close() 关闭文件
14 file.tell获取当前指针的位置
15 file.read()如果打开模式无b,则read按字符读取,否则按字节读取
16 file.fileno文件描述符
17 file.truncat 截断数据,清除文件指针之后的数据
热门日志
分类
- Django(4)
- ssdb(1)
- Mac(7)
- C(1)
- memcache(1)
- Python(32)
- Vim(8)
- sed(2)
- ansible(3)
- awk(4)
- shell(3)
- about(1)
- git(9)
- bat(4)
- svn(0)
- docker(1)
- Tornado(1)
- go(2)
- 架构(18)
- Vue(1)
- game(2)
- Html(6)
- Java(8)
- Mysql(37)
- Ajax(2)
- Jsp(1)
- Struts(8)
- Linux(72)
- JavaScript(39)
- Staruml(0)
- Mouth(1)
- Php(102)
- Windows(8)
- Message(48)
- Lua(10)
- Compute(1)
- Redis(7)
- Nginx(12)
- Jquery(1)
- Apache(1)
- cocos2d-x(8)