第七章-文件
7.1文件编码概念
7.2文件的读取操作
"""
演示对文件的读取
"""
import time
# 打开文件
f = open("E:/jufe.txt", "r", encoding="UTF-8")
print(type(f))
# 读取文件-read()
# print(f"读取10个字节的结果:{f.read(10)}")
# print(f"read方法读取全部内容的结果是:{f.read()}")
print("---------------------------------------------------------------------------------------")
# 读取文件-readLines()
# lines=f.readlines()# 读取文件的全部行,封装到列表中
# print(f"lines对象的类型:{type(lines)}")
# print(f"lines对象的内容是:{lines}")
# 读取文件-readLine()
# line1=f.readline()
# line2=f.readline()
# line3=f.readline()
# print(f"第一行数据是:{line1}")
# print(f"第二行数据是:{line2}")
# print(f"第三行数据是:{line3}")
# for循环读取文件行[每一次,就可以读取每一行数据]
for line in f:
print(f"每一行数据是:{line}")
# 文件的关闭
# time.sleep(500000) # 暂停执行500000秒
f.close()
time.sleep(500000)
# with open 语法操作文件[进行with open操作后,文件会自动关闭,推荐使用]
with open("E:/jufe.txt", "r", encoding="UTF-8") as f:
for line in f:
print(f"每一行数据是:{line}")
time.sleep(500000)
7.3文件读取的课后练习
# 打开文件,以读取模式打开
f=open("E:/word.txt","r",encoding="UTF-8")
# 方法一:读取全部内容,通过字符串count方法统计itheima单词数量
# content=f.read()
# count=content.count("itheima")
# print(f"文件里itheima的数目是:{count}")
# 方法二:读取内容,一行一行读取
count=0
for line in f:
line=line.strip() # 去除开头和结尾的空格 以及 换行符
words=line.split(" ")# 进行split切分,得到一个个词
for word in words:
if word=="itheima":
count+=1
# 判断单词出现次数并累计
print(f"itheima出现的次数是:{count}")
# 关闭文件 注意!一定要写 关闭
f.close()
7.4文件的写出操作
"""
演示文件的写入
"""
# import time
#
# # 打开文件,不存在的文件
# f=open("E:/test.txt","w",encoding="UTF-8")
# # write写入
# f.write("hello,world") # 内容写入到内存中
#
# # flush刷新
# # f.flush() #将内存中积攒的内容,写入到硬盘的文件中
# # time.sleep(600000)
# 打开一个存在的文件[若文件存在,他会清空已有内容,将新的内容覆盖上去]
f=open("E:/test.txt","w",encoding="UTF-8")
# write写入,flush刷新
f.write("niuma")
# close关闭
f.close() # close方法内置了 flush功能的
7.5文件的追加写入操作
"""
演示文件的追加写入
"""
# 打开文件,不存在的文件
# f=open("E:/text.txt","a",encoding="UTF-8")
# # write写入
# f.write("niuma aaaaaaaaaa")
# # flush刷新
# f.flush()
# # close关闭
# # f.close()
# 打开一个存在的文件
f=open("E:/text.txt","a",encoding="UTF-8")
# write写入、flush刷新
f.write("\n别学了")
# # close关闭
f.close()
7.6文件操作的综合案例
"""
演示文件操作综合案例:文件备份
"""
# 打开文件得到文件对象,准备读取
fr=open("E:/bill.txt","r",encoding="UTF-8")
# 打开文件得到文件对象,准备写入
fw=open("E:/bill.txt.bak",'w',encoding="UTF-8")
# for循环读取文件
for line in fr:
line=line.strip()
# 判断内容,将满足的内容写出
if line.split(",")[4]=="测试":
continue # continue进入下一次循环,这一次后面的内容就跳过了
# 将内容写出去
fw.write(line)
# 由于前面对内容进行了strip()的操作,所以要手动的写出换行符
fw.write("\n")
# close 2个文件对象
fr.close()
fw.close() # 写出文件调用close() 会自动flush()