今天继续给大家介绍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