文章目录

  • 1、读取指定字符
  • 2、读取一行
  • 3、读取全部行
  • 4、想一想

Python中打开文件后,除了可以向其写入或追加内容,还可以读取文件中的内容。读取文件内容主要分为以下几种情况:

1、读取指定字符

文件对象提供了read()方法读取指定个数的字符,语法格式如下:

file.read([size])

参数说明:

  • file:为打开的文件对象。
  • size:可选参数,用于指定从文件中读取的字符数(文本模式)或字节数(二进制模式),默认为 -1,如果省略,表示读取整个文件。

返回从字符串中读取的数据。

注意:在调用read()方法读取文件内容的前提是在打开文件时,指定的打开模式为r(只读)或者r+(读写),否则,将抛出异常。

使用read(size)方法读取文件时,是从文件的开头读取的。

2、读取一行

在使用read()方法读取文件时,如果文件很大,一次读取全部内容到内存,容易造成内存不足,所以通常会采用逐行读取。文件对象提供了readline()方法用于每次读取一行数据。readline()方法的基本语法格式如下:

file.readline()

其中,file为打开的文件对象。同read()方法一样,打开文件时,也需要指定打开模式为r(只读)或者r+(读写)。

3、读取全部行

读取全部行的作用同调用read()方法时不指定size类似,只不过读取全部行时,返回的是一个字符串列表,每个元素为文件的一行内容。读取全部行,使用的是文件对象的readlines()方法,其语法格式如下:

file.readlines()

其中,file为打开的文件对象。同read()方法一样,打开文件时,也需要指定打开模式为r(只读)或者r+(读写)。

4、想一想

如果一个文件很大,比如5G,试想应该怎样把文件的数据读取到内存然后进行处理呢?

调用read()会一次性读取文件的全部内容,如果文件有10G,内存就爆了,所以,要保险起见,可以反复调用read(size)方法,每次最多读取size个字节的内容。另外,调用readline()可以每次读取一行内容,调用readlines()一次读取所有内容并按行返回list。因此,要根据需要决定怎么调用。

如果文件很小,read()一次性读取最方便;如果不能确定文件大小,反复调用read(size)比较保险;如果是配置文件,调用readlines()最方便:

for line in f.readlines():print(line.strip()) # 把末尾的'\n'删掉

83文件操作——读取文件相关推荐

  1. python读文件操作-python文件操作读取文件写入文件

    读取文件 要使用文本文件中的信息,首先需要将信息读取到内存中.为此,你可以一次性读取文件的全部内容,也可以以每次一行的方式逐步读取. 读取整个文件 要读取文件,需要一个包含几行文本的文件.下面首先来创 ...

  2. 【C 语言】文件操作 ( 读取文件中的结构体数组 | feof 函数使用注意事项 )

    文章目录 一.读取文件中的结构体数组 | feof 函数使用注意事项 二.代码示例 一.读取文件中的结构体数组 | feof 函数使用注意事项 读取文件结构体时 , 可以循环读取文件中的数据 , 只使 ...

  3. 文件操作-读取文件后文件指针会发生变化

    # 1. 打开文件 file = open("README")# 2. 读取文件内容 text = file.read() print(text) print(len(text)) ...

  4. 文件操作-读取文件内容

    hello 1 hello 2 hello 345 # 1. 打开文件 file = open("README")# 2. 读取文件内容 text = file.read() pr ...

  5. python关闭读写的所有的文件-Python文件操作:文件的打开关闭读取写入

    Python文件操作:文件的打开关闭读取写入 一.文件的打开关闭 Python能以文本和二进制两种方式处理文件,本文主要讨论在Python3中文本文件的操作. 文件操作都分为以下几个步骤: 1.打开文 ...

  6. python以写模式打开的文件无法进读操作_Python文件操作:文件的打开关闭读取写入...

    Python文件操作:文件的打开关闭读取写入 一.文件的打开关闭 Python能以文本和二进制两种方式处理文件,本文主要讨论在Python3中文本文件的操作. 文件操作都分为以下几个步骤: 1.打开文 ...

  7. nodejs fs创建文件_节点FS – NodeJS创建文件,读取文件,写入文件

    nodejs fs创建文件 Node FS stands for NodeJS File System module. In my previous post, we have already dis ...

  8. python读取写入文件_Python读取文件,写入文件,打开文件,删除文件,复制文件

    python读取写入文件 In this tutorial we are going to learn about Python File Operations such as python read ...

  9. .NET基础-11-ArrayList|Hashtable|File文件操作|Dircetioy文件夹操作|Path路径操作

    集合 ArrayList与Hashtable应为存在拆箱与装箱,所以性能不怎么好,尽量不要使用,而使用泛型集合 可以使用下面的方式输出所消耗的时间 //ArrayList arl = new Arra ...

最新文章

  1. 深度学习项目实战-关键点定位视频课程
  2. Connection reset by peer原理解析
  3. Java程序员从阿里、京东、美团面试回来,这些面试题你会吗?
  4. 旧文 | 舒迅:产品经理必读的九步法
  5. cmake的使用-为什么要使用CMake
  6. java lambda函数_Java SE 8新功能介绍:使用Lambda Expression进行函数式编程
  7. 数学建模3 论文排版注意点
  8. Apache在windows下的安装与配置
  9. 关于java是最好的语言的段子_疯狂java——第一章 java语言概述与开发环境
  10. 操作系统源代码_计算机自制操作系统(八):仿生DOS操作系统源代码
  11. 几个移动端直播SDK开源地址
  12. Springboot整合七牛云上传图片
  13. 公司版苹果开发者账号注册申请流程
  14. 虚拟手游服务器,自己搭建手机游戏服务器
  15. 登陆远程kvm_KVM远程VMM管理
  16. 1.11 Illustrator视图的预览模式 [Illustrator CC教程]
  17. java 替换文件中的字符串
  18. 文件新旧判断和字符串判断
  19. 你自己写春联吗?你会贴春联吗?还是毛笔墨水早就不见了?
  20. easypoi实现导出数据、下载导入模板、导入数据

热门文章

  1. 如何在VMware上安装一个Android虚拟机
  2. 程序员不可能查到你的个人信息
  3. 全球及中国LFP电池市场供需调研与“十四五”前景预测报告2022年版
  4. 世界上最短的DVD解码程序(附源码)
  5. 银河麒麟操作系统问题解决方式汇总
  6. 《机器学习:算法原理与编程实践》的读书笔记:SMO部分最难,大部分代码基于Scikit-Learn,决策树其实用处不大
  7. Win10升级后极速模式网页打开卡慢的解决办法
  8. #{}不自动改参数类型_【Just For Fun】C - 可变参数函数、可变参数宏 __VA_ARGS__、额外的逗号
  9. win10 linux启动不了系统,win10下linux子系统无法启动宝塔服务器
  10. Java是重型兵团,哪Python呢?