Python读取文件的三种方式总结

 更新时间:2023年07月17日 17:24:19   作者:Commas.KM  
Python的文本处理是经常碰到的一个问题,非常重要的,这篇文章主要和大家分享的是3个Python读取文本文件内容的常用方法,希望对大家深入学习Python有所帮助

一、前言

Python的文本处理是经常碰到的一个问题,非常重要的,所以才决定重新写一期关于文件读取的文章。这里有3个Python读取文本文件内容的方法介绍给大家:

  • read()
  • readline()
  • readlines()

这三种方法各有利弊,下面逐一介绍其使用方法和利弊。

二、读取文件的三种方法

read()

该方法一次性读取整个文件的内容,并将内容保存在一个字符串对象中。因为是一次性读取,所以适用于文件较小的情况。这种方法返回的是一个字符串对象。

优点:方便简单,一次性读取到一个大字符串中,速度快;

缺点:文件过大的时候,占用内存也会很大,不适宜读取大文件;

示例:

# coding:utf-8
if __name__ == "__main__":
    # open
    f = open("example.txt",encoding='utf8')
    # read
    # f = open("example.txt",encoding='utf8')
    lines = f.read()
    print(lines)
    # close
    f.close()

也可以用with,如下:

# coding:utf-8
if __name__ == "__main__":
    with open("example.txt",encoding='utf8') as f:
        lines = f.read()
        print(lines)

输出:

Nothing could be more wonderful!
没有比这更让人高兴的了!

readline()

该方法每次读取一行内容,并返回一个字符串对象。由于是逐行读取,所以适用于大文件。

  • 优点:逐行读取,占用内存小,适合读取大文件;
  • 缺点:逐行读取,速度相对较慢;

示例:

# coding:utf-8
if __name__ == "__main__":
    # open
    f = open("example.txt",encoding='utf8')
    # read
    line = f.readline()
    while line:
        print(line,end="")
        line = f.readline()
    # close
    f.close()

也可以用with,如下:

# coding:utf-8
if __name__ == "__main__":
    with open("example.txt",encoding='utf8') as f:
        line = f.readline()
        while line:
            print(line,end="")
            line = f.readline()

输出:

Nothing could be more wonderful!
没有比这更让人高兴的了!

readlines()

该方法读取整个文件的所有行,并将每行内容保存在一个列表(list)变量中。由于是一次性读取整个文件,所以适用于文件较小的情况。

优点:一次性读取文本内容,速度较快;

缺点:文件过大的时候,占用内存也会很大,不适宜读取大文件;

示例:

# coding:utf-8
if __name__ == "__main__":
    # open
    f = open("example.txt",encoding='utf8')
    # read
    lines = f.readlines()
    for line in lines:
        print(line,end="")
    # close
    f.close()

也可以用with,如下:

# coding:utf-8
if __name__ == "__main__":
    with open("example.txt",encoding='utf8') as f:
        lines = f.readlines()
        for line in lines:
            print(line,end="")

输出:

Nothing could be more wonderful!
没有比这更让人高兴的了!

三、小结

完整语法:

open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)

间接语法(常用):

open(file, mode='r', encoding=None)

知识加油站:关于权限代码mode的知识,看过我之前博客的小伙伴应该都有所了解了,不清楚的小伙伴可以看我的另外一篇博客《python设置文件只读与取消文件只读》,这里就不再重复赘述了。

因为习惯了open,close,所以特意拎出来一下,一定要成双成对呀,当然您也可以用with。

序号方法说明
1open()打开文件,获取文件对象io.TextIOWrapper
2close()关闭对象,这个操作一定要做,否则会造成系统资源消耗

三个读文件的方法:

序号方法说明
1read()读取文件所有内容,加载到内存中 ;此方法适用于小文件操作
2readline()读取当前文件指针中的一行内容,加载到内存中;此方法适用于大文件操作
3readlines()将制定内容写入到列表(list)中,此方法适用于小文件操作

最后,值得指出的一点是,Python不依赖底层操作系统的文本文件概念,所有的处理都是由Python本身完成的,因此与平台无关。

到此这篇关于Python读取文件的三种方式总结的文章就介绍到这了,更多相关Python读取文件内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Python如何计算语句执行时间

    Python如何计算语句执行时间

    这篇文章主要介绍了Python如何计算语句执行时间,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-11-11
  • Python产生一个数值范围内的不重复的随机数的实现方法

    Python产生一个数值范围内的不重复的随机数的实现方法

    这篇文章主要介绍了Python产生一个数值范围内的不重复的随机数的实现方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-08-08
  • 详解Django框架中用context来解析模板的方法

    详解Django框架中用context来解析模板的方法

    这篇文章主要介绍了详解Django框架中用context来解析模板的方法,Django是重多高人气Python框架中最为著名的一个,需要的朋友可以参考下
    2015-07-07
  • 利用Python中unittest实现简单的单元测试实例详解

    利用Python中unittest实现简单的单元测试实例详解

    如果项目复杂,进行单元测试是保证降低出错率的好方法,Python提供的unittest可以很方便的实现单元测试,从而可以替换掉繁琐杂乱的main函数测试的方法,将测试用例、测试方法进行统一的管理和维护。本文主要介绍了利用Python中unittest实现简单的单元测试。
    2017-01-01
  • 如何用python插入独创性声明

    如何用python插入独创性声明

    这篇文章主要介绍了如何用python插入独创性声明,帮助大家更好的理解和学习使用python,感兴趣的朋友可以了解下
    2021-03-03
  • Python Opencv中基础的知识点

    Python Opencv中基础的知识点

    这篇文章主要介绍了Python Opencv中基础的知识点,主要包括创建窗口、保存图片、采集视频、鼠标控制的代码,代码简单易懂,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-07-07
  • Pandas之drop_duplicates:去除重复项方法

    Pandas之drop_duplicates:去除重复项方法

    下面小编就为大家分享一篇Pandas之drop_duplicates:去除重复项方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-04-04
  • python环境的报错解决方法

    python环境的报错解决方法

    这篇文章主要为大家介绍了python环境的报错解决方法,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-08-08
  • python生成密码字典的方法

    python生成密码字典的方法

    今天小编就为大家分享一篇python生成密码字典的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-07-07
  • JupyterNotebook 输出窗口的显示效果调整方法

    JupyterNotebook 输出窗口的显示效果调整方法

    这篇文章主要介绍了JupyterNotebook 输出窗口的显示效果调整方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-04-04

最新评论