第八章 文件和数据处理

第一节 文件打开方式

1.文件及文件类型

文件:文件是存储在辅助存储器上的一组数据序列,可以包含任何数据内容。

  • 文件是数据的集合和抽象
  • 文件是数据存储的一种形式
  • 文件包括两种类型:文本文件和二进制文件
  • 文本文件和二进制文件只是文件的展示形式本质上,所有文件都是二进制形式储存,形式上,所有文件都可以采用这两种方式展示

2.文本文件与二进制文件

文本文件

定义:一般由单一特定编码的字符组成,如 UTF-8编码,内容容易统一展示和阅读。

  • 由于存在编码,所以文本文件也被看成是存储着的长字符串,即文本文件就是字符串
  • 适用于例如:.txt文件.py文件

二进制文件

定义:直接由比特0和比特1组成,没有统一编码。文件内部数据的组织格式与文件用途有关

  • 适用于例如:.png文件(图片文件)、.avi文件(视频文件)。

:

  1. 二进制文件和文本文件最主要的区别在于是否有统一的字符编码
  2. 无论文件创建为文本文件或者二进制文件,都可以用“文本文件方式”和“二进制文件方式”打开,但打开后的操作不同。
  3. 采用文本方式读入文件,文件经过编码形成字符串,打印出有含义的字符(就是人能看懂的)。
  4. 采用二进制方式打开文件,文件被解析为字节流(人看不懂的)。

3.文件的打开和关闭

python 对文本文件和二进制文件采用同样的处理步骤:打开—操作—关闭
处理文件的示意图如下:
文件处理步骤流程图
:文件在处于占用状态时,是唯一,排他的,即当有一个文件处于占用状态时,其他文件则无法处于占用状态,只有等被占用的文件通过.close()方法关闭后,其他文件才能通过open()函数进入占用状态。

文件的打开

语法格式:

<变量>=open('<文件路径及文件名(包括文件后缀名)>',<打开模式>,encoding='utf-8')
# 此处的变量也叫文件句柄,是指将这个打开的文件赋值给变量,则该变量就为这个文件的文件句柄
# 文件路径分为相对路径和绝对路径,要用字符串方式来表示
# 打开模式默认为'rt',即用文本方式打开文件,且为只读模式
# encoding='utf-8'的作用是将字符改为utf-8编码显示;

使用encoding参数的小提示:

  • 不能直接输入这个参数,不然可能会报错。
  • 只有当**读取内容乱码/报错出现‘gbk’**时,才需使用该参数。若打印内容正常,则无需使用该参数;
  • 只有需要读取文件内容时,才需要使用该参数
    with open() as <变量>:语句的使用
  • 等价于上面的open()函数语句,作用都是打开文件
  • 该语句无需close()方法关闭,会自动关闭文件
  • 与open()里面的参数都相同
  • 若用该方式打开文件,则文件对象只在缩进范围内有效,无缩进会报错

文件路径

  • 文件路径可分为相对路径和绝对路径。

  • 绝对路径是指要打开的文件自身所在的完整路径。
    如何找到一个文件的绝对路径并使用?
    在我的电脑中找到要打开的文件,单击要打开的文件,此时窗口中所出现的路径即为完整路径。先单击该路径的空白处,再复制该路径到open()函数中。由于此时的文件路径中存在反斜杠(在pyhton中表示转义符),所以还要采用斜杆(/)代替反斜杠()或在反斜杠(\)前再增加一个反斜杠(\)的方式处理复制的路径,才能在open()函数中使用,最后千万别忘了加上要打开的文件的文件名和的后缀(例如.txt,.py),这样open()函数中的文件路径及文件名这个参数就可以正常使用了。

  • 相对路径:指要打开的文件与当前程序文件之前的相对路径
    下面我用一个例子来深入了解绝对路径与相对路径

#要打开的文件是在D盘的python学习文件夹中的IDLE的基础使用这一py文件,本程序与该文件都#在python学习文件夹中。
## 绝对路径的写法,按照上面的讲解得到绝对路径,如下:
a=open('D:/python学习/IDLE的基础使用.py','r')
## 相对路径的写法,将文件的绝路径与程序绝对路径中相同的部分省略,文件的绝对路径中剩下就## 是相对路径,由于程序与要打开的文件在同一文件夹中,所以只用写打开文件的文件名和后缀即
## 可
a=open("IDLE的基础使用.py",'r')

打开模式

<
打开模式 含义
‘r’ 只读模式默认值,如果文件不存在则返回异常
‘w’ 覆盖写模式,文件不存在则创建,文件存在则覆盖原文件内容
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值