zoukankan      html  css  js  c++  java
  • read、readline、readlines和linecache的使用

    现在有很多的内容都是放在文件中的,那么我们就要从文件中进行读取了,常见的读取方法有三种,分别是read()、readline()和readlines(),那他们有什么区别呢,我们来看一下。

    一、read(),返回字符串

    read(size)方法从文件当前位置起读取size个字节,若无参数size,则表示读取至文件结束为止,它范围为字符串对象。

    代码:

    f = open('春.txt',encoding="utf-8") # 打开文件
    data = f.read()
    print(data)
    

    输出结果:

    <class 'str'>
    盼望着,盼望着,东风来了,春天的脚步近了。
    一切都像刚睡醒的样子,欣欣然张开了眼。山朗润起来了,水涨起来了,太阳的脸红起来了。
    小草偷偷地从土里钻出来,嫩嫩的,绿绿的。园子里,田野里,瞧去,一大片一大片满是的。坐着,躺着,打两个滚,踢几脚球,赛几趟跑,捉几回迷藏。风轻悄悄的,草软绵绵的。
    桃树、杏树、梨树,你不让我,我不让你,都开满了花赶趟儿。红的像火,粉的像霞,白的像雪。花里带着甜味儿;闭了眼,树上仿佛已经满是桃儿、杏儿、梨儿。花下成千成百的蜜蜂嗡嗡地闹着,大小的蝴蝶飞来飞去。野花遍地是:杂样儿,有名字的,没名字的,散在草丛里,像眼睛,像星星,还眨呀眨的。
    “吹面不寒杨柳风”,不错的,像母亲的手抚摸着你。风里带来些新翻的泥土的气息,混着青草味儿,还有各种花的香,都在微微润湿的空气里酝酿。鸟儿将巢安在繁花嫩叶当中,高兴起来了,呼朋引伴地卖弄清脆的喉咙,唱出宛转的曲子,与轻风流水应和着。牛背上牧童的短笛,这时候也成天嘹亮地响着。
    雨是最寻常的,一下就是三两天。可别恼。看,像牛毛,像花针,像细丝,密密地斜织着,人家屋顶上全笼着一层薄烟。树叶儿却绿得发亮,小草儿也青得逼你的眼。傍晚时候,上灯了,一点点黄晕的光,烘托出一片安静而和平的夜。在乡下,小路上,石桥边,有撑起伞慢慢走着的人,地里还有工作的农民,披着蓑戴着笠。他们的房屋,稀稀疏疏的在雨里静默着。
    天上风筝渐渐多了,地上孩子也多了。城里乡下,家家户户,老老小小,也赶趟儿似的,一个个都出来了。舒活舒活筋骨,抖擞抖擞精神,各做各的一份事去。“一年之计在于春”,刚起头儿,有的是工夫,有的是希望。
    春天像刚落地的娃娃,从头到脚都是新的,它生长着。
    春天像小姑娘,花枝招展的,笑着,走着。
    春天像健壮的青年,有铁一般的胳膊和腰脚,领着我们上前去。

    代码:

    f = open('春.txt',encoding="utf-8") # 打开文件
    data = f.read(50)
    print(data)

    输出结果:

    <class 'str'>
    盼望着,盼望着,东风来了,春天的脚步近了。
    一切都像刚睡醒的样子,欣欣然张开了眼。山朗润起来了,水涨

    二、readline(),返回字符串

    readline(size):每次从文件中读取一行包括" "字符。如果size制定了一个非负数的参数,则返回指定大小的字节数,包括" "字符,该方法返回的是字符对象。当文件过大时,采用read()和readlines()读取会占用过多内存,甚至文件大于可用内存时,读取会出现异常,此时可使用readline()来读取,但该方法读取文件时间要大于前两种。

    代码:readline(),一行一行进行读取

    f = open('春.txt',encoding="utf-8") # 打开文件
    data = f.readline()
    data2 = f.readline()
    print(type(data))
    print(data,data2)

    输出结果:

    <class 'str'>
    盼望着,盼望着,东风来了,春天的脚步近了。
     一切都像刚睡醒的样子,欣欣然张开了眼。山朗润起来了,水涨起来了,太阳的脸红起来了。

     代码:readline(size),添加字节

    f = open('春.txt',encoding="utf-8") # 打开文件
    data = f.readline(10)
    data2 = f.readline(10)
    print(type(data))
    print(data)
    print(data2)
    

    输出结果:

    <class 'str'>
    盼望着,盼望着,东风
    来了,春天的脚步近了

     

     三、readlines(),返回列表

    readlines()读取整个文件所有行,保存在一个列表中,每行作为一个元素,但读取大文件会比较占内存。

    代码:

    f = open('春.txt',encoding="utf-8") # 打开文件
    data = f.readlines()
    print(type(data))
    print(data)
    

    输出结果:

    <class 'list'>
    ['盼望着,盼望着,东风来了,春天的脚步近了。
    ', '一切都像刚睡醒的样子,欣欣然张开了眼。山朗润起来了,水涨起来了,太阳的脸红起来了。
    ', '小草偷偷地从土里钻出来,嫩嫩的,绿绿的。园子里,田野里,瞧去,一大片一大片满是的。坐着,躺着,打两个滚,踢几脚球,赛几趟跑,捉几回迷藏。风轻悄悄的,草软绵绵的。
    ', '桃树、杏树、梨树,你不让我,我不让你,都开满了花赶趟儿。红的像火,粉的像霞,白的像雪。花里带着甜味儿;闭了眼,树上仿佛已经满是桃儿、杏儿、梨儿。花下成千成百的蜜蜂嗡嗡地闹着,大小的蝴蝶飞来飞去。野花遍地是:杂样儿,有名字的,没名字的,散在草丛里,像眼睛,像星星,还眨呀眨的。
    ', '“吹面不寒杨柳风”,不错的,像母亲的手抚摸着你。风里带来些新翻的泥土的气息,混着青草味儿,还有各种花的香,都在微微润湿的空气里酝酿。鸟儿将巢安在繁花嫩叶当中,高兴起来了,呼朋引伴地卖弄清脆的喉咙,唱出宛转的曲子,与轻风流水应和着。牛背上牧童的短笛,这时候也成天嘹亮地响着。
    ', '雨是最寻常的,一下就是三两天。可别恼。看,像牛毛,像花针,像细丝,密密地斜织着,人家屋顶上全笼着一层薄烟。树叶儿却绿得发亮,小草儿也青得逼你的眼。傍晚时候,上灯了,一点点黄晕的光,烘托出一片安静而和平的夜。在乡下,小路上,石桥边,有撑起伞慢慢走着的人,地里还有工作的农民,披着蓑戴着笠。他们的房屋,稀稀疏疏的在雨里静默着。
    ', '天上风筝渐渐多了,地上孩子也多了。城里乡下,家家户户,老老小小,也赶趟儿似的,一个个都出来了。舒活舒活筋骨,抖擞抖擞精神,各做各的一份事去。“一年之计在于春”,刚起头儿,有的是工夫,有的是希望。
    ', '春天像刚落地的娃娃,从头到脚都是新的,它生长着。
    ', '春天像小姑娘,花枝招展的,笑着,走着。
    ', '春天像健壮的青年,有铁一般的胳膊和腰脚,领着我们上前去。']
    

     四、linecache模块,返回字符串

    linecache模块既然是模块就需要先导入库,它可以指定获取文件中的第几行。

    代码:

    import linecache
    data = linecache.getline('春.txt',2)
    print(type(data))
    print(data)
    

    输出结果:

    <class 'str'>
    一切都像刚睡醒的样子,欣欣然张开了眼。山朗润起来了,水涨起来了,太阳的脸红起来了。
    

    以上就是读取文件的用法了,还有一点要说,读取完文件之后打印出来的内容可能会有空格或者换行符,如果想要去除这些多余字符可以使用strip(),字符串使用。

  • 相关阅读:
    hdu 5366 简单递推
    hdu 5365 判断正方形
    hdu 3635 并查集
    hdu 4497 数论
    hdu5419 Victor and Toys
    hdu5426 Rikka with Game
    poj2074 Line of Sight
    hdu5425 Rikka with Tree II
    hdu5424 Rikka with Graph II
    poj1009 Edge Detection
  • 原文地址:https://www.cnblogs.com/luym/p/12542659.html
Copyright © 2011-2022 走看看