Python文件操作详解(二)

今天继续给大家介绍Python相关知识,本文主要内容是Python文件操作详解。

一、文件读取

Python对于文件的读取有三个函数,这三个函数及其作用如下表所示:

Python文件读取函数函数作用
f.read(size=-1)表示读取文件句柄f所标识的文件的全部内容,size参数表示读取的长度,size参数默认为-1,表示全部读取
f.readline(size=-1)表示读取文件句柄f所标识文件的一行,size参数表示读取该行的长度,size参数默认为-1,表示对该行全部读取,使用该函数时会导致文件
f.readlines(hint=-1)表示读取读取文件句柄f所标识文件的所有行,并且以每行的内容为元素返回一个列表变量。hint参数表示读取文件的行数,默认为-1,标识读取该文件的所有行

假设一个文件内容如下所示:
在这里插入图片描述
那么使用上述三个函数读取文件后结果如下所示:
在这里插入图片描述

二、文件写入

Python对于文件写入的操作主要有2个函数,这2个函数及其作用如下表所示:

Python文件写入函数函数作用
f.write(str)向文件句柄f所标识的文件内写入str所对应的字符串(当以文本文件方式打开文件时)或者字节流(当以二进制文件方式打开文件时)
f.writelines(lines)将lines列表写入文件句柄f所标识的文件,lines的每个元素写入文件(注意:每个元素之间不会自动分行!)

我们假设执行以下代码:

f=open("C:\\Users\\Administrator\\Desktop\\test.txt","at")
f.write("The first content has been writen to the target file!!!")
lines=["The first!!!","The second!!!","The third!!!"]
f.writelines(lines)
f.close()

则文件写入后,文件内容如下所示:
在这里插入图片描述

三、文件指针

文件一经打开,就会自动出现文件指针,以方便我们读取和写入,文件指针类似C语言中指针的概念,是标识文件内容中的地址。之所以readline()函数可以逐行的读取文件,就是因为文件在读取后,会自动的移动文件指针指向读取过后的内容,这样我们在不断的调用readline()函数后,就可以不断文件内容了。
文件指针会随着我们读取和写入自动的变更位置,这一机制在很大程度上有利于我们对文件的操作,但是有时这一操作却会给我们对文件的使用造成问题。
例如:
在这里插入图片描述
在这里插入图片描述
在第一个例子中,我们在打开的文件中同时使用read()函数和readlines()函数,尝试以两种不同的方式读取文件,结果在第二个readlines()函数中读取出的内容却是空。这是因为在第一个read()函数执行完毕后,文件指针已经自动指向了文件的最后一行,这样我们就无法读取到文件的任何信息了。
在第二个例子中,我们在向文件内写入内容后,马上尝试读取文件中的内容,结果读取到的结果也是空,这样也是由于文件指针指向文件末尾的缘故。
为了可以更好的操作文件,Python提供了seek()函数,可以帮助我们更好的操作文件。seek()函数输入是文件指针的偏移值,如果该值设置为0,则表示将文件指针移动到文件开头;如果该值设置为1,则表示将文件指针移动到当前位置(不移动);如果该值设置为2,则表示将文件指针移动到文件结尾。
针对上述程序,我们只需要加上seek()函数,就可以得到我们想要的效果了,修改后的程序及执行结果如下所示:
在这里插入图片描述
在这里插入图片描述
原创不易,转载请说明出处:https://blog.csdn.net/weixin_40228200

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

永远是少年啊

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值