基本的文件操作
我们知道音频,视频和图片在硬盘中也是用二进制存储的,但是字符编码只和文本文件有关,因此'utf-8'格式的编码并不适用视频,视频有其本身的编码格式,如MP4、avi、mkv等。
一、什么是文件
文件是操作系统为用户或者应用程序提供的一个读写硬盘的虚拟文件单位。文件的操作是基于文件,即文件的操作核心就是:读和写。
就是说只要我们想要操作文件就是对操作系统发送请求,然后有操作系统将用户或应用程序 对文件的读和写操作转换成集体的硬盘指令(比如控制盘片的转动,控制机械手臂的移动,以此来读取数据。)
二、为什么要有文件?
内存无法永久保存数据,但凡我们想要永久保存数据都需要把文件保存在硬盘中,而操作文件就可以实现对硬件的操作。
文件的作用:存储数据
三、如何用文件
现在我们有一个需求需要把用户输入的账号密码存储到硬盘中,我们使用Python该如何操作呢?
name = 'chen'
pwd = '123'
3.1从硬盘中读取数据
如果我们需要打开一个文件,需要向操作系统发起请求,要求操作系统打开文件,占用操作系统的资源。python中使用open()
方法可以打开某一个具体的文件,open()方法内写入文件路径。
open(r'F:\python自学\db.txt')
想一想,如果给列表增加值,我们需要给列表赋值后才能给对应的列表加值,对文件来说也是一样的。
lis = [1,2,3]
lis.append(4)
lis.append(5)
#打开文件
f = open(r'F:\python自学\db.txt')
print(f)
#输出:
打开文件后,文件不仅占用了内存,他还对应了操作系统打开的以文件,相当于使用文本编辑器打开了一个文件。并且操控文件只是为了读和写,因此打开文件并不是目的,读和写才是目的,接下来我们尝试如何读写文件。
#read 模式打开文件
f = open(r'F:\python自学\db.txt',mode='r',encoding="utf8")
#读取文件内容,向操作系统发起读请求,会被操作系统转成具体的硬盘操作,将内容由硬盘读入内存。
data = f.read()
print(data)
# 由于python的垃圾回收机制只回收引用计数为0的变量,但是打开文件还占用操作系统的资源,所以需要收回操作系统的资源
#不能使用del f
# del f 只是对变量f 的回收
f.close()
#输出:
name,123,1000
四、绝对路径和相对路径
一、绝对路径
Windows系统绝对路径从盘符(C:\、D:\)开始写一个完整的路径。
macos系统从根目录(/Users)开始写一个完整的路径
二、相对路径
相对于当前执行文件所在的文件夹开始找
五、文件的操作
文件操作的基础模式由三种(默认的操作模式为r模式):
r模式为read
w模式为write
a模式为append
文件读写内容的格式有俩种(默认的读写内容的模式为b模式):
t模式为text
b模式为bytes
需要注意的是:t,b这俩种模式均不能单独使用,都需要与r模式、w模式、a模式之一连用。
一、文件打开模式(r模式)
r:read,只读模式,只能读不能写,文件不存在时报错。
f = open('F: