python读取文件有三种方法:read()、readline()、readlines(),下面来看一下他们有什么区别:
a.txt
黑色幽默
安静
python
一、read([size])方法
- 一次性读取全部内容;
- size为读取的长度,以byte为单位,如果不指定参数,则表示读取全部;
- 返回字符串;
- 并且每一行结尾会有一个"\n"符号。
>>> fp=open(r"e:\a.txt") >>> line=fp.read() >>> line '黑色幽默\n安静\npython' >>> type(line) <class 'str'> #返回的是字符串 >>> fp.seek(0,0) 0 >>> line1=fp.read(10) #读取10个字节 >>> line1 '黑色幽默\n安静\npy' >>> fp.close()
二、readline()方法
- 每次读取一行内容;
- 如果给定了size,有可能返回的只是一行的一部分(超过一行也只会返回一行);
- 以字符串的形式返回;
- 并且结尾会有一个换行符"\n";
- 读完一行,文件操作标记移动到下一行的开头;
- 读取时占用内存小,比较适合大文件。
>>> fp=open(r"e:\a.txt") >>> line=fp.readline() >>> line '黑色幽默\n' >>> type(line) <class 'str'> #返回的字符串 >>> fp.seek(0,0) 0 >>> line1=fp.readline(10) #指定的size超过一行内容还是返回一行内容 >>> line1 '黑色幽默\n' >>> fp.close()
三、readlines()方法
- 读取整个文件所有行;
- 把文件每一行作为一个list的一个成员,是一个字符串,并返回这个list;
- 如果指定了size参数,表示读取文件指定内容的长度,此时就有可能只能读取文件的一部分(注:指定很小的数字,会不生效,python 默认8k缓存区大小,需要大于8k生效)
- 并且结尾会有一个换行符"\n"
>>> fp=open(r"e:\a.txt") >>> line=fp.readlines() >>> line ['黑色幽默\n', '安静\n', 'python'] >>> type(line) <class 'list'> #返回的是一个list >>> fp.seek(0,0) 0 >>> line1=fp.readlines(5) #指定size读取 >>> line1 ['黑色幽默\n', '安静\n'] >>> fp.close()