文件的操作和练习复习题
文件的操作和练习复习题
读写模式之a模式
a模式 只追加模式
路径不存在:自动创建
with open(r'a.txt','a', encoding = 'utf8') as f:
pass
路径存在:不会清空文件 在文件末尾添加内容
with open(r'a.txt', 'a', encoding='utf8')as f:
f.write('/几天周四了 马上又要放假了 好开心!!!')
"""小总结
我们所学习的r w a读写模式都只能操作文本文件
"""
文件操作方法
文件的操作方法
1.读系列
with open(r'a.txt', 'r', encoding='utf8')as f:
print(f.read()) # 一次性读取文件内所有的内容
print(f.readline()) # 每次只读文件一行内容
print(f.readlines()) # 读取文件所有的内容 组织成列表 每个元素是文件的每行内容
print(f.readable()) # 判断当前文件是否具备读的能力
2.写系列
with open(r'a.txt', 'w', encoding='utf8'):
f.write('克服一切困难 奥利给!') 文件内写入文本内容
f.write(123) 写入的内容必须是字符串
f.write(['jason','kevin', 'tony' ]) 可以将咯额表中多个字符串元素全部写入
print(f.readable()) True
print(f.readable()) False
f.flush() # 直接将内存内文件数据刷到硬盘 相当于ctrl+s
文件优化操作
with open(r'a.txt', 'r', encoding='utf8') as f:
print(f.read()) # 一次性读取文件内所有的内容
print(f.read()) # 一次性读取文件内所有的内容
print(f.read()) # 一次性读取文件内所有的内容
"""
1.一次性读完之后 光标停留在了文件末尾 无法再次读取内容
2.该方法在读取大文件的时候 可能会造成内存溢出的情况
解决上述问题的策略就是逐行读取文件内容
"""
for line in f: 文件变量名f支持for循环 相当于一行行读取文件内容
line
"""以后涉及到多行文件内容的情况一般都是采用for循环读取"""
课堂练习
1.简易版本的注册、登录功能普通要求(实现一次即可)
注册功能
获取用户名和密码组织成你喜欢的样子写入文件即可
登陆功能
获取用户名和密码然后比对是否与文件内用户数据一致
注册功能
1.获取用户用户名和密码
username = input('username>>>:').strip
password = input('password>>>:').strip
2.将用户名和密码组织成一个字符串
data = %s|%s % (username,password)
3.文件操作 写入代码
with open(r'a.txt', 'w', encoding='ntf8') as f:
f.with(data)
print('用户:%s注册成功' % username)
登录系统
1.获取用户名和密码(先使用input获取用户输入的数据 然后strip()移除首尾空格 之后的赋值给变量名username)
username = input('username>>>:').strip()
password = input('password>>>:').strip()
2.获取文件内真实的用户数据
with open(r'a.txt', 'r', encoding='utf8') as f1:
由于现在文件中只有一行内容 我们干脆直接读取完
data = f.read() 'jason|jason123'
"""with子代码执行完之后的结果是可以在外面使用的"""
切割字符串获取真实的用户名和密码
res = data.split('|') # ['jason', 'jason123']
"""这里也可以直接用解压赋值的操作 real_name,real_pwd = data.split('|')"""
比对数据
if username == res[0] and password == res[1]:
print('登录成功')
else:
print('用户或者密码错误')
文件操作模式
t 文本模式
1.默认的模式
r w a >>> rt wt at
2.该模式所有操作都是以字符串基本单位(文本)
3.该模式必须要指定encoding参数
4.该模式只能操作文本文件
b 二进制模式
1.该模式可以操作任意类型的文件
2.该模式所有操作都是以bytes类型(二进制)基本单位
3.该模式不需要指定encoding参数
rd wd ad
浙公网安备 33010602011771号