1、前言
在实际操作将会对文件中的数据进行操作,学习使用对文件非常重要。
2、文件操作方式
(1)普通文件:
读:r
读写:r+(文件不存在将报错),w+(文件不存在将新建文件),a+(文件不存在将不会报错)
写:w(会覆盖),a(添加)
(2)二进制文件:
读:rb
读写:rb+,wb+,ab+
写:wb,ab
3、测试用例
(1)读取文件中的内容(read方法)
注:一次性读取文件的所有内容,保存于字符串中,包括换行符
f = open("kk.txt",'r')
fileRead = f.read() #文件的所有内容读入到fileRead中,包括换行符
print(fileRead)
f.close()
kk.txt文件内容
apple
pear
banana
orange
运行结果
(2)读取文件中的内容(readline方法)
注:每次读取文件中的一行
f = open("kk.txt",'r')
while True:
fileRead = f.readline() #每次读取一行包括换行符
if fileRead:
print(fileRead)
else:
break
f.close()
kk.txt文件内容
apple
pear
banana
orange
运行结果:
(3)读取文件中的内容(readlines方法)
注:一次性读取文件的所有内容,保存于列表中
f = open("kk.txt",'r')
fileRead = f.readlines() #一次性读取文件的所有内容保存于fileRead列表中
print(fileRead)
f.close()
kk.txt文件内容
apple
pear
banana
orange
运行结果:
(3)写入文件(write方法)
写入文件分为覆盖和添加,根据文件打开的方式而定。
write():将字符串参数写入文件中
1、覆盖:
原文件内容:
apple
pear
banana
orange
f = open("kk.txt",'w')
str = 'Welcome Home!'
f.write(str) #将一个字符串作为参数传入写入文件
f.close()
f = open("kk.txt",'r')
readFile = f.read() #读取文件的所有内容
print(readFile)
f.close()
2、添加:
原文件内容:
Welcome Home!
f = open("kk.txt",'a') #采用添加方式打开文件
str = "\nMay the force be with you"
f.write(str) #将字符串中的内容写入到文件中
f.close()
f = open("kk.txt",'r') #读取文件中所有内容
readFile = f.read()
print(readFile)
f.close()
(4)写入文件(writeLines方法)
writeLines():将参数为字符串序列写入文件
原文件内容:
Welcome Home!
May the force be with you
str = ["\nC-3PO","\nR2-D2","\nBB-8"] #存储的字符序列
f = open("kk.txt",'a') #采用添加的方式打开文件
f.writelines(str)
f.close()
f = open("kk.txt",'r') #读取文件的所有内容
readFile = f.read()
print(readFile)
f.close()
4、文件指针操作
在对文件操作中使用的是文件指针,读取状态下默认为文件首,覆盖写入状态下默认为文件首,添加状态下默认为文件末尾。
(1)查看当前文件指针所在位置
file.tell(self),其返回值为所在当前文件位置
(2)移动文件指针
file.seek(self,offset,whence)
offset:偏移量
whence:起始位置(0:文件首,1:当前位置,2:文件末尾)
f = open("kk.txt",'r')
readFile = f.read()
print(readFile)
print("读取完文件后的文件指针位置:" +str(f.tell()))
f.seek(6,0) #移动文件指针,从文件首移动6位
print("移动后的文件指针位置:"+str(f.tell()))
print(f.read()) #读取文件从指针当前位进行读取
f.close()
5、上下文管理器
使用 with ,在处理文件过程后,都能在执行完成后关闭打开的文件。
with open("kk.txt",'r') as f:
print(f.read())