一、在python3中引入了字节串的概念,与str不同,字节串以字节序列值表达数据,更方便用来处理二进制数据。因此在python3中字节串是常见的二进制数据展现方式。

  普通的ascii编码字符串可以在前面加b转换为字节串,例如:b"hello"

  字符串转换为字节串方式:str.encode()

  字节串转换为字符串方法:bytes.decode()

对文件实现读写的基本操作步骤为:打开文件,读写文件,关闭文件

file_object = open(file_name, access_mode = 'r', buffering =  -1)

功能:打开一个文件,返回一个文件对象

参数:file_name 文件名;

     access_mode 打开文件的方式,如果不写默认为 ‘r’

     buffering          1表示有行缓冲,默认则表示使用系统默认提供的缓冲机制。

返回值:成功返回文件操作对象。

 

打开文件模式:r   w   a    r+(读写,文件必须存在)   w+  a+(文件必须存在)

        rb  wb  ab   rb+                                 wb+  ab+  :上面文件模式的二进制模式

 

关闭文件对象:file_object.close()

 

二、读文件

1.file_object.read([size]):讲文件中的内容读到内存中,如果不填参数,默认读文件里 所有内容。

2.file_object.readline([size])

  功能:用来读取文件中一行

  参数:如果没有给定size参数(默认值为-1)或者size值为负,表示读取一行,给定size表示最多读取制定的字符(字节)。

  返回值:返回读取到的内容

3.readlines([sizeint])

功能:读取文件中的每一行作为列表中的一项

参数:如果没有给定size参数(默认值为-1)或者size值为负,文件将被读取直至末尾,给定size表示读取到size字符所在行为止。

返回值:返回读取到的内容列表。

 

三、文件对象本身也是一个可迭代对象,在for循环中可以迭代文件的每一行。

for line in file_obj:

  print(line)

 

四、写文件

  file_obj.write(string)

  功能:把文本数据或者二进制数据块的字符串写入到文件中去

  参数:要写入的内容

  返回值:写入的字符个数

  注意:如果需要换行要自己在写入内容中添加\n

 

  file_obj.writelines(str_list)

  功能:接受一个字符串列表作为参数,将他们写入文件。

  参数:要写入的内容列表。

 

五、with语句

  with open('file','r+') as f:

    f.read()

通过with方法可以不用close(),因为with生成的对象在语句块结束后会自动处理,所以也就不需要close了,但是这个文件对象只能在with语句块内使用。

 

六、缓冲区 buffering

  buffering表示选择的缓冲区类型。默认情况下是系统自定义缓冲,1表示行缓冲,大于1表示设置缓冲区的大小。

  刷新缓冲区条件:

  1.缓冲区被写满

  2.程序执行结束或者文件对象被关闭

  3.行缓冲遇到换行

  4.程序中调用flush()函数

 

七、文件偏移量

   file_obj.tell()  :获取文件偏移量大小

   flie_obj.seek(offset[,whence]) 

  功能:移动文件偏移量位置

  参数:offset 代表相对于某个位置移动的字节数。负数表示向前移动,正数表示向后移动。

     whence是基准位置   默认值为0,表示从文件开头算起,1代表从当前位置算起,2代表从文件末尾算起。

  注意:必须以二进制方式打开文件时基准位置才能是1或者2   

 

八、文件处理方法

  1. 获取文件大小   os.path.getsize(file)

   功能:获取文件大小

     参数:文件路径

   返回值:文件大小(字节)

  2.查看文件列表 os.listdir(dir)

    功能:查看文件列表

    参数:目标位置

   返回值:文件列表

  3.判断文件是否存在 os.path.exists(flie)

    功能:判断文件是否存在

    参数:文件路径

    返回值:存在返回True,不存在返回False

  4.判断文件类型 os.path.isfile(file)

    功能:判断文件类型

    参数:文件路径

    返回值:如果是普通文件返回True ,否则返回False

  5.删除文件os.remove(file)

    功能:删除文件

    参数:文件路径