文件处理,注册,登入,with
文件处理
什么是文件处理
修改存储的信息
什么是文件
操作系统提供的虚拟概念,存储信息(用二进制存储信息)
打开文件
f = open(r'文件路径','打开模式',encoding='某种编码')
修改文件
f.write()
保存文件
f.flush()
关闭文件
f.close()
文件的三种打开模式
r:读取模式
f.read() #读取所有文本内容
f.readline() #一行一行读取
w:清空写入模式
f.write()
a:追加写入
f.write
encoding指定读取/写入文件的编码格式
打开文件的两种方式
t:文本
用于文本类文件
与r/w/a连用,不用加encoding
d:二进制
用于音频类文件
与r/w/a连用,不用加encoding
文件路径
绝对路径
从盘符开始 D:\ss\ss\ss.txt
相对路径
和执行文件同属一个文件夹下(写项目尽量用相对路径)
with管理文件上下文
whit提供一个自动关闭文件的功能,解除了操作系统的占用.
with open('文件路径','打开模式',encoding='编码格式') as f:
pass
文件高级应用
r+:可读可写,覆盖式写入
w+:可读可写,清空写入
a+:可读可写,默认光标在后面,无法读光标之后的数据
光标的移动
英文一个字节一个字符,中文三个字节一个字符
seek
seek(n) #移动了n个字节,默认从头开始
whence
规定只有(0,1,2)三种模式,0是文件头开始,1是文件所在位置开始,2文件尾开始
tell
告诉你当前所在位置
truncate
truncate(n) #n为几就保留前几位
read
移动光标,以字符为单位,n为字符数,不写默认全部.
注册
count = 0
while count < 3:
uname = input('输入名字:')
upwd = input('输入密码:')
upwd_inp = input('再次输入密码:')
if not upwd == upwd_inp:
print('俩次密码不一致')
count += 1
continue
with open(r'jsb.txt','a',encoding='utf8')as fa:
fa.write(f'{uname}:{upwd}\n')
fa.flush()
break
登入
uname = input('输入名字:')
upwd = input('输入密码:')
with open(r'jsb.txt','r',encoding='utf8')as fr:
for jsb in fr:
name,pwd = jsb.split(':')
if name.strip() == uname and pwd.strip == upwd :
print('登入成功')
break
else:
print('登入失败')
文件修改
文件没有修改一说,只有覆盖.
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 用 C# 插值字符串处理器写一个 sscanf
· Java 中堆内存和栈内存上的数据分布和特点
· 开发中对象命名的一点思考
· .NET Core内存结构体系(Windows环境)底层原理浅谈
· C# 深度学习:对抗生成网络(GAN)训练头像生成模型
· 趁着过年的时候手搓了一个低代码框架
· 本地部署DeepSeek后,没有好看的交互界面怎么行!
· 为什么说在企业级应用开发中,后端往往是效率杀手?
· 用 C# 插值字符串处理器写一个 sscanf
· 乌龟冬眠箱湿度监控系统和AI辅助建议功能的实现