文件概述
按数据的组织形式,文件大致可以分为如下两类。
1. 文本文件
文本文件是一种由若干字符构成的文件,可以用文本编辑器进行阅读或编辑。以txt、py、html等为后缀的文件都是文本文件。
2. 二进制文件
二进制文件一般是指不能用文本编辑器阅读或编辑的文件。以mp3、mp4、png等为后缀的文件都是二进制文件,如果想要打开或修改这些文件,必须通过特定软件进行,比如用Photoshop软件可以编辑图像文件。
从本质上讲,文本文件也是二进制文件,因为计算机处理的全是二进制数据。
文件操作
通过程序操作文件与手动操作文件类似,通常需要经过3个步骤:打开文件、读或写数据、关闭文件。
打开文件
对文件所有的操作都是在打开文件之后进行的,打开文件使用open()函数来实现,其语法格式如下:
关闭文件
当对文件内容操作完以后,一定要关闭文件,这样才能保证所修改的数据保存到文件中,同时也可以释放内存资源供其他程序使用。关闭文件的语法格式如下:
读文本文件
打开文件成功后将返回一个文本对象,对文件内容的读取可以通过该对象来实现,该对象有3种方法可以获取文件内容,具体如下所示:
1. read()方法
read()方法可以从文件中读取内容,其语法格式如下:
2. readlines()方法
readlines()方法可以读取文件中的所有行,其语法格式如下:
3. readline()方法
readline()方法可以逐行读取文件的内容,其语法格式如下:
4. in关键字
除了上述几种方法外,还可以通过in关键字读取文件,如例所示。
写文本文件
文件中写入内容也是通过文件对象来完成,可以使用write()方法或writelines()方法来实现。
1. write()方法
write()方法可以实现向文件中写入内容,其语法格式如下:
2. writelines()方法
writelines()方法向文件中写入字符串列表,其语法格式如下:
读写二进制文件
文本文件使用字符序列来存储数据,而二进制文件使用字节序列存储数据,它只能被特定的读取器读取。Python中pickle模块可以将数据序列化。
序列化是指将对象转化成一系列字节存储到文件中,而反序列化是指程序从文件中读取信息并用来重构上一次保存的对象。
pickle模块中dump()函数可以实现序列化操作,其语法格式如下:
创建目录
os模块的mkdir()函数可以创建目录,其语法格式如下:
另外,os模块的listdir()函数可以获取指定目录中包含的文件名与目录名,其语法格式如下:
遍历目录
如果希望查看指定路径下全部子目录的所有目录和文件信息,就需要进行目录的遍历,os模块的walk()函数可以遍历目录树,其语法格式如下:
该函数返回一个由3个元组类型的元素组成的列表,具体如下所示:
删除目录
删除目录可以通过以下两个函数,具体如下所示:
接下来演示这两个函数的使用,如例所示。