文章目录
1. 文本文件和二进制文件
按文件中数据组织形式,我们把文件分为文本文件和二级制文件两大类。
- 文本文件
文本文件存储的是普通“字符”文本,默认为unicode字符集,可以使用记事本程序打开。但是,像word软件编辑的文档不是文本文件。
- 二进制文件
二进制文件把数据内容用“字节”进行存储,无法用记事本打开。必须使用专用的软件解码。常见的有:MP4视频文件、MP3音频文件、JPG图片、doc文档等等。
2. 创建文件对象 open()
- open()函数用于创建文件对象,基本语法格式如下:
open(文件名,打开方式)
- 打开方式中,如果没有增加模式“b”,则默认创建的是文本文件对象,处理的基本单元是“字符”。如果是二进制模式“b”,则创建的是二进制文件对象,处理的基本单元是“字节”。
3. 文本文件的写入
- 三个步骤
1)创建文件对象
2)写入数据
- 关闭文件对象
3.1 write()/writelines()写入数据
-
write(a): 把字符串a写入文件中
-
writelines(b): 把字符串列表写入文件中,不添加换行符
f = open('test.txt','w',encoding='utf-8')
s = ['alex\n','john\n','peter\n','皓']
f.writelines(s)
f.close()
3.2 with语句
不论什么原因跳出with块,都能确保文件正确的关闭,并且可以在代码块执行完毕后自动还原进入该代码块时的现场。
s = 'alex\njohn\npeter\n皓'
with open('test.txt','w',encoding='utf-8') as f:
f.write(s)
4. 文本文件的读取
文件的读取一般使用如下三个方法:
- read(size)
从文件中读取size,并作为结果返回。如果没有size参数,则读取整个文件。
with open('test.txt','r',encoding='utf-8') as f:
print(f.read(5))
print(f.read(3)) ##执行完前一句后,光标停留在第五个字符后面,再次读取的时候从第六个字符开始读
- readline()
with open('test.txt','r',encoding='utf-8') as f:
print(f.readline())
print(f.readline())
# 第一行,f.readline()完成后最后一个字符是 ‘\n’,此时光标已经定位到了下一行的第0个位置
# print函数end默认为换行,因此每打印一行会空一行,相当于输入了两次换行。
- readlines()
with open('test.txt','r',encoding='utf-8') as f:
print(f.readlines()) # 一行一行的读取,存放在列表中
# ['alex\n', 'john\n', 'peter\n', '皓']