第一节 文件打开方式
1.文件及文件类型
文件:文件是存储在辅助存储器上的一组数据序列,可以包含任何数据内容。
- 文件是数据的集合和抽象。
- 文件是数据存储的一种形式。
- 文件包括两种类型:文本文件和二进制文件。
- 文本文件和二进制文件只是文件的展示形式,本质上,所有文件都是二进制形式储存,形式上,所有文件都可以采用这两种方式展示。
2.文本文件与二进制文件
文本文件
定义:一般由单一特定编码的字符组成,如 UTF-8编码,内容容易统一展示和阅读。
- 由于存在编码,所以文本文件也被看成是存储着的长字符串,即文本文件就是字符串。
- 适用于例如:.txt文件,.py文件
二进制文件
定义:直接由比特0和比特1组成,没有统一编码。文件内部数据的组织格式与文件用途有关。
- 适用于例如:.png文件(图片文件)、.avi文件(视频文件)。
注:
- 二进制文件和文本文件最主要的区别在于是否有统一的字符编码。
- 无论文件创建为文本文件或者二进制文件,都可以用“文本文件方式”和“二进制文件方式”打开,但打开后的操作不同。
- 采用文本方式读入文件,文件经过编码形成字符串,打印出有含义的字符(就是人能看懂的)。
- 采用二进制方式打开文件,文件被解析为字节流(人看不懂的)。
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’ | 覆盖写模式,文件不存在则创建,文件存在则覆盖原文件内容 |