内容正文:
专题12 文件读取
信息技术特色专项
授课教师:
日期:2024.0.1.01
学习目标
理解文件操作的顺序
0 1
掌握文件打开、关闭方法的使用
0 2
掌握文件读写方法和文件定位方法的使用
0 3
学习目录
01
文件的读写
02
文件的定位
03
文件的打开和关闭
PART 01
文件的关闭与打开
01
文件指存储在外部介质(如磁盘等)上有序的数据集合,这个数据集有一个名称,称为文件名。按数据的组织形式不同,可以将文件分为文本文件和二进制文件两大类。
文本文件一般由单一特定编码的字符组成,如UTF-8编码,内容容易统一展示和阅读。
二进制文件直接由比特0和比特1组成,没有统一字符编码,文件内部数据的组织格式与文件用途有关。
文件的关闭与打开
02
Python对文本文件和二进制文件采用统一的操作步骤:
(1)打开文件,或者新建文件;
(2)读/写文件;
(3)关闭文件。
Python内置了文件对象,通过open()函数即可按照指定模式打开指定文件,并创建文件对象,其语法格式如下:
文件对象名 = open(文件名[,打开方式])
文件名亦可包含文件路径,写路径时注意斜杠问题。若路径和文件名为“c:\myfile”,应写成“c:\\myfile”。
省略为只读方式
文件的关闭与打开
03
文件打开方式 含 义 如果指定的文件不存在
r(只读) 打开一个文本文件,只允许读数据 出错
w(只写) 打开或建立一个文本文件,只允许写数据 建立新文件
a(追加) 打开一个文本文件,并在文件末尾增加数据 建立新文件
rb(只读) 以二进制格式打开一个文件,只允许读数据 出错
wb(只写) 以二进制格式打开或建立一个文件,只允许写数据 建立新文件
ab(追加) 以二进制格式打开一个文件,并在文件末尾写数据 建立新文件
r+(读写) 打开一个文本文件,允许读和写 出错
w+(读写) 打开或建立一个文本文件,允许读和写 建立新文件
a+(读写) 打开一个文本文件,允许读或在文件末追加数据 建立新文件
rb+(读写) 以二进制格式打开一个文件,允许读和写 出错
wb+(读写) 以二进制格式打开或建立一个文件,允许读和写 建立新文件
ab+(读写) 以二进制格式打开一个文件,允许读或在文件末尾追加数据 建立新文件
文件的关闭与打开
03
文件的关闭
在Python中,虽然文件会在程序退出后自动关闭,但是考虑到数据的安全性,在每次使用完文件后,都需要使用close()方法关闭文件,其语法格式如下:
文件对象名.close()
以只写方式打开一个名为“test.txt”的文件,然后关闭文件,代码如下:
file = open('test.txt','w') #以只写方式打开一个名为“test.txt”的文件
file.close() #关闭文件
PART 02
文件的读写
01
文件的读写
1.write()方法
write()方法用于向文件中写入指定字符串,其语法格式如下:
文件对象名.write(str)
例:向文件“testfile.txt”文件中写入如下数据。
Interface options
Generic options
Miscellaneous options
Options you shouldn’t use
file = open('testfile.txt','w')
#向文件中输入字符串
file.write('Interface options
')
file.write('Generic options
')
file.write('Miscellaneous options
')
file.write('Options you shouldn’t use
')
file.close()
提示
如果打开文件时,文件打开方式带“b”,那么写入文件内容时,str(参数)要用encode方法转为字节流形式,否则报错。file.write('Interface options'.encode())
02
文件的读写
2.writelines()方法
writelines()方法用于向文件中写入一序列的字符串。这一序列字符串可以是由迭代对象产生的,如一个字符串列表,其语法格式如下:
文件对象名.writelines(sequence)
例:使用writelines()方法向已有的“testfile.txt”文件中追加如下数据。
Environment
variables
ls = ['Environment
','variables']
with open('testfile.txt','a') as file:
file.writelines(ls) #向文件中追加字符串列表
04
文件的读写
1.read()方法
read()方法用于从文件中读取指定的字节数,如果未给定参数或参数为负,则读取整个文件内容,其语法格式如下:
文件对象名.read([size])
size为从文件中读取的字节数
该方法返回从文件中读取的字符串
例:使用read()方法读取“testfile.txt”文件。
with open('testfile.txt','r') as file: #以只读方式打开原有的名为“testfile.txt”的文件
line = file.read(10) #读取前10个字节
print(line) #输出前10个字节
print('*'*30) #输出30个*用于分隔
content = file.read() #读取文件中剩余的所有内容
print(content) #输出
05
文件的读写
2.readline()方法
readline()方法用于从文件中读取整行,包括“
”字符。如果指定了一个非负数的参数,则表示读入指定大小的字符串,其语法格式如下:
文件对象名.readline([size])
例:使用readline()方法读取“testfile.txt”文件。
with open('testfile.txt','r') as file: #以只读方式打开原有的名为“testfile.txt”的文件
line = file.readline() #读取一行
print(line) #输出
print('*'*30) #输出30个*用于分隔
line = file.readline(10) #读取下一行的前10个字符
print(line) #输出
PART 03
文件的定位
01
文件的定位
在读写文件的过程中,如果想知道当前文件位置指针的位置,可以通过调用tell()方法来获取。tell()方法返回文件的当前位置,即文件位置指针当前位置。其语法格式如下:
文件对象名.tell()
例:使用tell()方法获取文件当前的读写位置。
with open('testfile.txt','r') as file: #以只读方式打开名为“testfile.txt”的文件
line = file.read(8) #读取前8个字节
print(line) #输出前8个字节
p = file.tell() #获取指针当前位置
print('当前位置:',p) #输出当前位置
line = file.read(4) #继续读取4个字节
print(line) #输出读取到的数据
p = file.tell() #获取指针当前位置
print('当前位置:',p) #输出当前位置
02
文件的定位
如果在读写文件的过程中,需要从指定的位置开始读写操作,就可以使用seek()方法实现。seek()方法用于移动文件位置指针到指定位置,其语法格式如下:
文件对象名.seek(offset[,whence])
表示偏移量,也就是需要偏移的字节数。
可选,默认值为0,表示起始点,即位移量的参考点,有三种取值,0代表“文件开始位置”,1代表“当前位置”,2代表“文件末尾位置”。
03
文件的定位
例:创建名为“seek.txt“的文件,输入“This is a test!”并存放进文件中,读取单词“test”并输出到终端。
filename = input('请输入新建的文件名:') #输入文件名
with open(filename,'w+') as file: #新建文件并以读写方式打开
file.write('This is a test!') #将字符串输入到文件
file.seek(10) #指针移到从头开始的第10个字符处
con = file.read(4) #读取4个字符给con
print(con) #输出
感谢欣赏
$$null