• 【Python】读取文本的三种方式对比


    1.概述

    Python有三种读取文本的方式,分别是:

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

    2.三种方式的优缺点分析

    2.1 read()

    最简单的一种方法,一次性读取文件的所有内容放入到一个大字符串中,即存在内存中。

    • 优点:
      • 方便、简单
      • 一次性独读出文件放在一个大字符串中,速度最快
    • 缺点:
      • 文件过大的时候,占用内存会过大
    file_object = open('test.txt') # 不要把open放在try中,以防止打开失败,那么就不用关闭了
    try:
    	file_context = file_object.read() #file_context是一个string,读取完后,就失去了对test.txt的文件引用
    # file_context = open(file).read().splitlines() 
    # file_context是一个list,每行文本内容是list中的一个元素
    finally:
        file_object.close()
    # 除了以上方法,也可用with、contextlib都可以打开文件,且自动关闭文件,
    # 以防止打开的文件对象未关闭而占用内存
    

    2.2 readline()

    readline()逐行读取文本,结果是一个list

    • 优点
      • 占用内存小,逐行读取
    • 缺点
      • 由于是逐行读取,速度比较慢
    with open(file) as f:
        line = f.readline()
        while line:
            print line
            line = f.readline()
    

    2.3 readlines()

    readlines()一次性读取文本的所有内容,结果是一个list

    • 优点
      • 一次性读取文本内容,速度比较快
    • 缺点
      • 随着文本的增大,占用内存会越来越多
    with open(file) as f:
      for line in f.readlines():
         print line
    # 这种方法读取的文本内容,每行文本末尾都会带一个'
    '换行符 (可以使用L.rstrip('
    ')去掉换行符)
    

    2.4 最简单、最快速的逐行处理文本的方法:直接for循环文件对象

    file_object = open('test.txt','rU')
    try: 
        for line in file_object:
             do_somthing_with(line) # line带"
    "
    finally:
         file_object.close()
    
  • 相关阅读:
    设计模式学习笔记之命令模式
    JavaEE复习三
    ubuntu下安装UltraEdit
    转载:Ubuntu下deb包的安装方法
    查看linux系统版本是32位还是64位
    手动编译生成apk
    android service文章转载
    @+android:id的一些记录
    android Tweened Animations
    ubuntu下打开chm文件
  • 原文地址:https://www.cnblogs.com/OliverQin/p/12525973.html
Copyright © 2020-2023  润新知