Python基础-Day09 文件操作

目录

1. 文本文件和二进制文件

1.1 文本文件

1.2 二进制文件

2. 创建文件对象open()

3. 文本文件的写入

3.1 基本的文件写入操作

3.2 write()/writelines() 写入数据

3.3 close() 关闭文件流

3.4 with 语句(上下文管理器)

4. 文本文件的读取

5. 二进制文件的读取和写入

6. 使用 pickle 序列化

7.  os、os.path 模块

7.1 os 模块

7.2 os.path 模块

7.3 walk() 方法


1. 文本文件和二进制文件

1.1 文本文件

文本文件存储的是普通“字符”文本(python 默认为unicode 字符集),可使用记事本程序打开。

1.2 二进制文件

二进制文件以“字节”存储数据内容,必须使用专用软件进行解码,无法用记事本程序打开。常见的二进制文件有:MP4 视频文件、MP3 音频文件、JPG 图片、doc 文档 等。

2. 创建文件对象open()

open()函数用于创建文件对象,基本语法格式如下:
        open(文件名[,打开方式])

1)文件名可以录入全路径,如果只含文件名,则代表在当前目录下的文件。

2)若未增加模式“b”,则默认创建的是文本文件对象,处理的基本单元为“字符”,否则创建的是二进制文件对象,处理的基本单元为“字节”。

3. 文本文件的写入

3.1 基本的文件写入操作

文本文件的写入一般包括三个步骤:

1)创建文件对象

2)写入数据

3)关闭文件对象

3.2 write()/writelines() 写入数据

write(a):将字符串a 写入到文件中;

writelines(b):将字符串列表写入文件中,不添加换行符。

3.3 close() 关闭文件流

由于文件底层由操作系统控制,因此必须显式调用close()方法关闭已打开的文件对象。当调用close()方法时,首先会将缓冲区数据写入文件,再关闭文件,释放文件对象。

【注】为确保打开的文件对象正常关闭,一般结合异常机制中的 finally 或 with 关键字实现。

3.4 with 语句(上下文管理器)

with 关键字(上下文管理器)可以自动管理上下文资源,不论出于什么原因跳出with 块,都可以确保文件正确的关闭,并在代码块执行完毕后自动还原进入该代码块时的现场。

4. 文本文件的读取

文件的读取一般使用如下三个方法:

1)read([size]):

size为可选参数,表示从文件中读取size 个字符,并作为结果返回。若没有size 参数,则读取整个文件。若读取到文件末尾,则会返回空字符串。

2)readline():

读取一行内容作为结果返回。若读取到文件末尾,则会返回空字符串。

3)readlines():

将文本文件中的每一行作为一个字符串存入列表中,返回该列表。

5. 二进制文件的读取和写入

二进制文件的处理流程与文本文件基本一致,只是需要指定二进制模式,从而创建出二进制文件对象,如:

f = open(r"d:\a.txt", 'wb')   #可写的、重写模式的二进制文件对象
f = open(r"d:\a.txt", 'ab')    #可写的、追加模式的二进制文件对象
f = open(r"d:\a.txt", 'rb')     #可读的二进制文件对象

创建好二进制文件对象后,仍然可以使用write()、read()实现文件的读写操作。

6. 使用 pickle 序列化

1)序列化:将对象转化成“串行化”的数据形式,从而存储到硬盘或通过网络传输到其他地方;

2)反序列化:与序列化相反的过程,将读取到的“串行化数据”转化成对象。

可以使用 pickle 模块中的函数,实现序列化和反序列操作:

pickle.dump(obj, file)  #obj 为要被序列化的对象,file 是存储的文件
pickle.load(file)           #从file 读取数据,反序列化成对象

7.  os、os.path 模块

7.1 os 模块

可以直接对操作系统进行操作,如:

os.system:直接调用系统的命令;

os.startfile:直接调用可执行文件。

7.2 os.path 模块

os.path 模块提供了目录相关(路径判断、路径切分、路径连接、文件夹遍历)的操作。

7.3 walk() 方法

walk()递归遍历所有文件和目录,返回一个含有三个元素的元组(dirpath, dirnames, filenames),其中:

1)dirpath:要列出指定目录的路径;

2)irnames:目录下的所有文件夹;

3)filenames:目录下的所有文件。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值