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只可读,不可写;
  • 读到不存在的文件,会报错

在这里插入图片描述
在这里插入图片描述
(2)w

  • 可写模式,不可读,可写;
    在这里插入图片描述

  • 打开存在文件时,清空原文件,并再写入
    在这里插入图片描述
    在这里插入图片描述

  • 打开不存在的文件,会新建文件并写入内容
    在这里插入图片描述在这里插入图片描述

(3)a

  • 追加模式,writeonly,只可写,不可读
    在这里插入图片描述
  • 打开存在文件时,将要写入内容追加到原文
  • 打开不存在文件时,会新建一个文件并写入内容
    在这里插入图片描述
    在这里插入图片描述

(4)r+

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

在这里插入图片描述
在这里插入图片描述

(5)w+

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

在这里插入图片描述
在这里插入图片描述
(6)a+

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

在这里插入图片描述
在这里插入图片描述

1.2 二进制文件打开模式

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

2.对文件的操作

2.1文件指针

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

2.2对纯文本文件的操作

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

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

在这里插入图片描述

2.3 对二进制文件的操作

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

在这里插入图片描述
(2)对二进制文件的复制(写入)
在这里插入图片描述

  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值