python-day03-File

来源:互联网 发布:笔记本无线蹭网软件 编辑:程序博客网 时间:2024/06/08 15:41

简介:

  今天要介绍的就是Python的文件读写操作,因为以后开发肯定也是会使用到的一个重要功能;

(1)读操作

对比与Python2,Python3对于文件读取功能进行了更简便的更新,只需使用open函数即可:

open():

def open(file, mode='r', encoding=None): # known special case of open

这是截取了一部分的官方文档,这是我们一般会用的三个参数

第一个file为文件名或文件名地址

第二个为操作模式,默认为读操作

第三个为字符编码模式


官方文档给出的基本文件操作模式:

========= ===============================================================    Character Meaning    --------- ---------------------------------------------------------------    'r'       open for reading (default)  读操作    'w'       open for writing, truncating the file first  写    'x'       create a new file and open it for writing新建新的文件并进行写操作    'a'       open for writing, appending to the end of the file if it exists打开文件并进行末尾追加写入    'b'       binary mode    二进制    't'       text mode (default)    '+'       open a disk file for updating (reading and writing)    'U'       universal newline mode (deprecated)    ========= ===============================================================

基本实现方法:

f = open("actor","r",encoding="utf-8") #获取文件句柄data = f.read();print(data)

解释:“actor”为文件名,同目录下可以直接带入文件名即可,选择读操作,因为国内电脑编码问题,

我们需要自己指定为“utf-8”,否则会报错

上面的操作的操作是将文件内容进行全部读取,并打印出来,因为是全部读取,不能进行更多的操作。

有时想要进行必要操作,就要使用readline()或指定参数的read()来进行才做

例子:

f = open("actor","r",encoding="utf-8") #获取文件句柄#指定参数则只读取5个字符data = f.read(5);print(data)for i in range(5):    data = f.readline()    print(data)f.close()

readline()是用于使用光标一行一行的进行读取,所以使得操作更可控

在里面还有另外一个相似的方法,叫做readlines(),这个方法是先读取文件,并以换行符为标记,一行行的存入一个

列表中,所以会有以下读取操作:

for line in f.readlines():    print(line.strip())  #strip()去除空格和换行符for index,line in enumerate(f.readlines()):    if index==9:        print("-------第十行分隔符-----------")      #  print(line.strip())    else:        print(line.strip())

注意:因为readlines是先进行读取,然后再以列表的形式暂时存入内存中,文件内容不大时并没有什么影响

           但是文件过大就会非常影响效率和占用内存


小知识点:操作光标

无论读写,有时候都可能需要指定光标,所以就有了tell()和seek()这两个基础函数:

print(f.tell())    #tell用于输出光标位置print(f.seek(0))   #seek可操作光标位置,参数就是需要指定到达的位置


(2)写操作

就像上面给出基本的操作模式中,就有几个不同的写操作,每一个都不太相同,所以使用时需要额外小心

不然就容易把之前的数据清空掉

看例子:

f = open("actor","w",encoding="utf-8") #获取文件句柄w.write("Hello World!")

结果:


因为写操作会新建文件并把旧文件被覆盖掉,所以要谨慎使用

以下是追加操作:

f = open("actor","a",encoding="utf-8") #写读模式f.write("Hello Python!")



(3)读写操作

读写操作也是一个重要的知识点,只是因为计算机硬件和电脑软件的原因,读写操作并不能实现想象中的能一边读

一边写的功能

而要使用读写功能,就要使用到操作模式中的“+”符号进行。

下面是我上网找到不同功能的读写操作符号:


r+打开一个文件用于读写。文件指针将会放在文件的开头。rb+以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。w+打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。wb+以二进制格式打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。a+打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。ab+以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件用于读写。

读写操作需要的注意点跟写操作一样,有些操作是会覆盖的,所以使用时最好查清楚模式的作用,以防万一!





 

原创粉丝点击