美文网首页
python中 read() 、readline() 与 rea

python中 read() 、readline() 与 rea

作者: jiang | 来源:发表于2017-05-05 00:31 被阅读606次

分别用这三个函数读取 myfile.txt 。 myfile.txt 中的内容是拜伦的《她以绝美之姿行来》(节选):

她以绝美之姿行来,犹如夜晚

晴空无云,繁星灿烂;

那最绝妙的光明与黑暗,

均汇聚于她的丰姿与眼底,

交织成如许温柔光辉,

是浓艳的白昼所无缘得见。

read()

with open('myfile.txt','r') as f:

    poem = f.read()

     print(poem,'\n',type(poem))

打印结果:

她以绝美之姿行来,犹如夜晚 晴空无云,繁星灿烂; 那最绝妙的光明与黑暗, 均汇聚于她的丰姿与眼底, 交织成如许温柔光辉, 是浓艳的白昼所无缘得见。

<class 'str'>

read() 函数不指定参数的话,会将文件一次性读完,并返回一个 str  ;

如果指定参数如 read(5) 则只会读取前 5 个字符,并返回一个 str,在读取大文件时一般都要指定参数进行分次读取。

readline()

with open('myfile.txt','r') as f:

     poem = f.readline()

     print(poem,'\n',type(poem))

打印结果:

她以绝美之姿行来,犹如夜晚

<class 'str'>

用法:readline()不指定参数的话一次读取一行(即遇到换行符就停止读取),返回一个 str 。

指定参数如 readline(5) 的话就读取前5个字符。但与 read(5) 不同的是,如果前 5 个字符中有换行符,它只会读取换行符前的字符(也就是只读取一行)。

readlines()

with open('myfile.txt','r') as f:

     poem = f.readlines()

     print(poem,'\n',type(poem))

打印结果:

['她以绝美之姿行来,犹如夜晚 \n', '晴空无云,繁星灿烂; \n', '那最绝妙的光明与黑暗, \n', '均汇聚于她的丰姿与眼底, \n', '交织成如许温柔光辉, \n', '是浓艳的白昼所无缘得见。']

<class 'list'>

用法:readlines()不指定参数的话会一次地将文件读完,并返回一个列表。列表的第一个元素是文件的第一行,第二个元素是第二行……

 readlines()若指定参数如 readlines(5) ,并不是读取 5 行.....如下所示

readlines(5)

打印结果:

['她以绝美之姿行来,犹如夜晚 \n']

这里的 5 是字符数量。当读取的字符数量大于 5 时就停止读取,否则继续读取下一行。这里第一行的字符数量超过了 5 个,就停止读取了。

总结:

在读取大文件时,使用 read(size) 逐次读取 。

在读取存储 url 的文件时,使用 readlines() 刚好可以生成一个列表,方便处理。

相关文章

网友评论

      本文标题:python中 read() 、readline() 与 rea

      本文链接:https://www.haomeiwen.com/subject/ruzuzttx.html