Python中read()、readline()、readlines()之间的区别

1、read([size])

read([size]):从文件当前位置起读取size个字节,若无参数,则默认读取整个文件。
返回值:一个str对象(将整个读取的字节拼接成一个字符串,包括换行符、制表符)。

with open(‘file.txt’, 'r', encoding='utf-8') as f:
	lines = f.read()
	print(lines)

上面代码读中lines为字符串,有时我们需要的是将文件中每行的内容作为一个元素保存在列表中,这时可以使用字符串内置函数.splitlines(),对字符串进行分割。

with open(‘file.txt’, 'r', encoding='utf-8') as f:
	lines = f.read().splitelines()
	print(lines)

2、readlines()

readlines():读取整个文件并保存在一个列表中,文件中的每一行作为列表中的一个元素(包括‘\n’、‘\t’)。
返回值: list对象
由于读取文件时保留了每行结尾的换行符,可以使用strip()函数来去除每个元素的开头和结尾的空格。

with open('file.txr', 'r',) as f:
	lines = f.readlines()
	lines = [line.strip() for line in lines if len(line.strip())]
	print(lines)

3、readline([size])

readline():每次从文件中读取一行包括'\n'字符。如果size指定了一个非负数的参数,则返回指定大小的字节数,包括 “\n” 字符。

with open(r'E:\文本分析\dataSet\12.text', 'r', encoding='utf-8') as f:
	while True:
		line = f.readline()
		if line:
			print(line)
		else:
			break

注意: 当文件过大时,采用read()readlines()读取时会占用过多内存,甚至文件大于可用内存时,读取会出现异常。此时可使用readline()来读取,但该方法读取文件时间要大于前两种。


文件读取的最优方法

with open('file.txt', 'r') as f:
	for line in f:
		do_things(f)

使用open()函数创建的文件对象是一个迭代器,因此可以使用for语句进行遍历,每次读取文件的一行(包括’\n’)。
这种方法是文本文件读取的最佳选择,它简单、且对任意大小的文件都有效,因为他不会一次性把整个文件都载入到内存中。

参考文献:https://www.zhihu.com/question/28426969

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值