一、文件的修改
在上集中,有的方法也能修改文件,但是会有覆盖的问题出现,这主要跟硬盘的存储方式有关。
那怎么做到全局替换呢?
——不在硬盘里修改数据,打开文件后,先把文件的内容存放到内存中,在内存中修改,再把新内容写回硬盘。
二、全局修改实例
import sys (导入sys模块)
old_str=sys.argv[1]
new_str=sys.argv[2]
filename=sys.argv[3]
第一步 读到内存
f=open(filename,"r+")
data=f.read() (读到内存)
第二步 计算(替换几次)并替换
old_str_count=data.count(old_str)
new_data=data.replace(old_str,new_str)
第三步 清空文件
f.seek(0)
f.truncate (截断文件的方法)
第四步 保存新内容
f.write(new_data)
print(f"成功替换字符'{old_str}'为'{new_str}',共{old_str_count}次")
三、应用
1.题目
用户登录认证
要求:(1)⽤户输⼊帐号密码进⾏登录(2)用户账号信息保存在保存在文件内(3)用户密码输错三次后锁定,再次登录后会检测出被锁定并给出提示
2.步骤
(1)确定存储账号信息的结构:用户名、密码、锁定状态(0-锁定 1-不锁定)
(2)将账户数据读取到内存中(为了方便调用,可以改成字典的形式)
(3)做一个循环,要求用户输入账号信息,去判断