Python中文件的读取2-2

在《Python中文件的读取2-1》中提到,可以使用read()函数读取文件中所有数据。通过指定read()函数的参数,可以读取文件中指定数量的数据。

1 read()函数读取指定数量的数据

通过read()函数读取指定数量数据的代码如图1所示。

图1 通过read()函数读取指定数量的数据

从第2行中可以看出,read()函数读取文件中前5个数据。假设“words.txt”文件的内容如图2所示,则此时的输出内容是“abcde”。

图2 “words.txt”文件的内容

2 seek()函数移动文件当前位置

2.1 seek()函数的基本用法

在“1 read()函数读取指定数量的数据”中提到的read()函数只能从文件的起始位置处开始读取文件,通过seek()函数可以移动文件的当前位置,也就是可以从任意位置处读取文件内容,代码如图3所示。

图3 从任意位置处读取文件内容

seek()函数的作用是将文件的当前位置后移4位,移动到图2的d和e之间,之后再调用read()函数读取5个数据,此时得到的数据是“efghi”。

2.2 seek()函数的扩展用法

使用seek()函数移动文件当前位置时,还可以指定移动时的起点,代码如图4所示。

图4 seek()函数的扩展用法

其中,第2行中的seek(4,0)表示以文件头为起点向后移动4个数据,之后第3行读取5个数据,因此words1的值是“efghi”;第4行中的seek(4,1)表示以当前位置为起点向后移动4个数据,因为在第3行中read()读取数据之后,文件的当前位置在i和j之间,再向后移动4个数据,此时位置在m和n之间,第5行中读取5个数据,因此words2的值是“nopqr”;第6行中seek(-4,2)表示以文件尾为起点向前移动4个数据,此时文件的当前位置在v和w之间,第7行读取5个数据,因此words3的值是“wxyz”。

注意:使用seek(4,1)时,需要以二进制的方式打开文件,如图4中代码1所示。如果以文本方式打开文件时,会有can't do nonzero cur-relative seeks的错误提示。

3 readlines()函数按行读取所有内容

当文件内容不太多的时候,可以通过readlines()函数按行读取所有内容。该函数以行内容为单位,将文件内容保存到列表中,代码如图5所示。

图5 readlines()函数按行读取所有内容

假设words.txt文件的内容如图6所示,此时words[2]的值是“opqrst”。

图6 words.txt文件的内容

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值