Theme-Logo
    • 通知公告
  • [登录]/[注册]
  • D 返回首页
python3编程学习
  • 基础教程
    • 初识python
    • 语法特点
    • 输入输出
    • 运算符+
    • 数据类型
    • 类型转换
    • 条件控制
    • 循环语句
    • 函数详解
    • 面向对象
    • 模块详解
    • File(文件)
    • 字符串初级
    • 字符串进阶
    • 错误和异常
  • 高级教程
    • 数据库深操作
    • web网站开发
    • GUI界面开发
    • 网络爬虫开发
    • 游戏高级开发

读取文件内容

在 python 中打开文件后,除了可以向其写入或追加内容,还可以读取文件中的内容。
  • 返回首页

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

1、读取指定字符

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

file.read([size])

参数说明:

file :为打开的文件对象

size:可选参数,用于指定要读取的字符个数,如果省略,则一次性读取所有内容。

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

例如,要读取 message.txt 文件中的前9个字符,可以使用下面的代码:

with open('message.txt','r') as file:
     string = file.read(9)
     print(string)

使用 read(size) 方法读取文件时,是从文件的开头读取的。如果想要读取部分内容,可以先使用文件对象的 seek() 方法将文件的指针移动到新的位置,然后再应用 read(size) 方法读取。seek() 本语法格式如下:

file.seek(offset[,whence])

参数说明

file :表示已经打开的文件对象

offset:用于指定移动的字符个数,其具体位置与 whence 参数有关

whence:用于指定从什么位置开始计算。值为0表示从文件头开始计算,值为1表示从当前位置开始计算,值为2表示从文件尾开始计算,默认为0。

对于 whence 参数,如果在打开文件时,没有使用b模式(即rb),那么只允许从文件头开始计算相对位置,从文件尾计算时就会抛出异常。

例如,想要从文件的第19个字符开始读取13个字符可以使用下面的代码:

with open('message.txt','r') as file:
     file.seek(19)           #移动文件指针到新的位置
     string = file.read(13)  #读取13个字符
     print(string)

在使用seek()方法时,如果来用 GBK 编码,那么 offset 的值是按一个汉宇(包括中文标点符号)占两个字符计算,而采用 UTF-8 编码,则一个汉字占3个字符,不过无论采用何种编码英文和数字都是按一个字符计算的。这与read(size)方法不同。

2、读取一行

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

    本文未完全显示,开通会员查看全文......

回顶部