python之对纯文本文件和二进制文件的使用

python中使用文件的介绍:

  • 计算机系统分为:计算机硬件,操作系统,应用程序三部分。
  • 我们用python或其他语言编写的应用程序若想要把数据永久保存下来,必须要保存于硬盘中,这就涉及到应用程序要操作硬件,众所周知,应用程序是无法直接操作硬件的,这就用到了操作系统。操作系统把复杂的硬件操作封装成简单的接口给用户/应用程序使用,其中文件就是操作系统提供给应用程序来操作硬盘虚拟概念,用户或应用程序通过操作文件,可以将自己的数据永久保存下来。
    有了文件的概念,我们无需再去考虑操作硬盘的细节

  • 文件系统操作三步曲:打开(open)–>操作–>关闭(close

1.文件的打开

  • 规范起见:在打开文件后,就先将关闭代码跟随写好,之后再进行操作

  • 如果读取的是 图片 音频 视频(非纯文本文件)需要通过二进制的方式读取和写入
    (1)读取纯文本文件(txt)
    r r+ w w+ a a+ = rt rt+ wt wt+ at at+
    (2)读取二进制文件
    rb rb+ wb wb+ ab ab+

1.1文本文件文件打开的模式

(1)r

  • 默认模式,readonly只可读,不可写;
  • 读到不存在的文件,会报错

python之对纯文本文件和二进制文件的使用
python之对纯文本文件和二进制文件的使用
(2)w

  • 可写模式,不可读,可写;
    python之对纯文本文件和二进制文件的使用

  • 打开存在文件时,清空原文件,并再写入
    python之对纯文本文件和二进制文件的使用
    python之对纯文本文件和二进制文件的使用

  • 打开不存在的文件,会新建文件并写入内容
    python之对纯文本文件和二进制文件的使用python之对纯文本文件和二进制文件的使用

(3)a

  • 追加模式,writeonly,只可写,不可读
    python之对纯文本文件和二进制文件的使用
  • 打开存在文件时,将要写入内容追加到原文
  • 打开不存在文件时,会新建一个文件并写入内容
    python之对纯文本文件和二进制文件的使用
    python之对纯文本文件和二进制文件的使用

(4)r+

  • 可读可写
  • 不会清空原文件(这点与a相似)
  • 打开不存在的文件时,会报错

python之对纯文本文件和二进制文件的使用
python之对纯文本文件和二进制文件的使用

(5)w+

  • 可读可写
  • 打开已存在文件时会清空文件,所以相当于也读不到内容
  • 打开不存在的文件时,会新建文件并写入内容

python之对纯文本文件和二进制文件的使用
python之对纯文本文件和二进制文件的使用
(6)a+

  • 追加模式 可读 可写
  • 打开存在文件时,将追加内容追加至源文件
  • 打开不存在文件时,新建文件,并将追加内容写入新文件

python之对纯文本文件和二进制文件的使用
python之对纯文本文件和二进制文件的使用

1.2 二进制文件打开模式

rb rb+ wb wb+ ab ab+ 各种模式的用法其实与文本文件读取模式一致(可参考上述模式)

2.对文件的操作

2.1文件指针

文件 有文件指针;随着操作的执行,文件指针会发生变化;
执行两次读操作时,按照常理来说,应该会显示两个内容,但运行结果可以看到只读取了一遍文件内容原因是文件指针的存在,文件指针随着我们的操作而移动,执行到哪里,指针移动到哪里。
当执行第一个读取操作时,指针移动到了内容末尾,再次执行读操作,指针后无内容,显示为空,所以我们只看到一遍文件内容。
python之对纯文本文件和二进制文件的使用

2.2对纯文本文件的操作

(1) 读取文件 f.read()
(2) 按行读取文件 f.readline()
readline()读取结果会换行 只读取一行
python之对纯文本文件和二进制文件的使用
(3) 按行读取文件,返回列表 f.readlines()
readlines()返回内容不换行,而是一行形成一个元素最后形成一个列表返回
python之对纯文本文件和二进制文件的使用
(4) 按字节读取文件 f.read(n)
python之对纯文本文件和二进制文件的使用
(5)写文件 f.write()
(6)判断文件对象是否可读 f.readable()
(7)判断文件对象是否可写 f.writeable()
python之对纯文本文件和二进制文件的使用
(8)文件指针所在位置 f.tell()
python之对纯文本文件和二进制文件的使用
(9)文件指针的移动f.seek(x,y)
系统执行时先看第二个参数,后看第一个参数

  • x第一个参数:偏移量
    >0 向后移动
    <0 向前移动
  • y第二个参数:移动开始的位置 y只能从集合{0,1,2}中取值
    0 文件开头
    1 当前位置
    2 文件末尾

python之对纯文本文件和二进制文件的使用

2.3 对二进制文件的操作

(1)读取二进制文件(图片为例)f.read()
读取二进制文件,运行结果返回的是内存地址空间

python之对纯文本文件和二进制文件的使用
(2)对二进制文件的复制(写入)
python之对纯文本文件和二进制文件的使用