一、文件读写
操作顺序如下:
1先要有个文件。2打开文件。3操作文件。 读或者写。4关闭文件
#打开模式有三种,只读模式 r,写模式 w(会清空原有内容),追加模式 a。没有指定的话默认为只读模式。
#在同一文件夹下,可直接写文件名。如果在其他位置,需要写详细路径。
例:
f =open ('users.txt','a+',encoding="utf-8")#a是追加模式,增加时不会删除原有内容,+表示可读写。 encoding="utf-8中文不显示乱码。
f.seek(0)#移动文件指针
print(f.read())#获取到文件里面所有内容
f.write('xiaoxiao','123456
')#写入一条内容。
f.flush()#刷新缓冲
f.close()
二、编程练习
#1、实现注册功能 #输入:username、passowrd,cpassowrd #最多可以输错3次 #3个都不能为空 #用户名长度最少6位, 最长20位,用户名不能重复 #密码长度最少8位,最长15位 #两次输入的密码要一致 #注册成功之后,要写到文件里面 #2、登陆功能实现: #最多登录3次 #用户名和密码从users.txt文件里面取 #1、实现注册功能 f = open('users.txt', 'a+', encoding='utf-8') f.seek(0) usersinfo = {} for line in f.readlines(): users_info = line.strip().split(',') usersinfo[users_info[0]] = users_info[1] for i in range(3): username = input('请输入用户名:').strip() password = input('请输入密码:').strip() cpassword = input('请再次输入密码:').strip() if len(username)==0 or len(password)==0 or len(cpassword)==0: print('用户名密码不能为空') elif len(username)<6 or len(username)>20: print('用户名长度最少6位,最长20位') continue elif username in usersinfo.keys(): print('该用户名已被使用') continue elif len(password)<8 or len(password)>15: print('密码长度最少8位,最长15位') continue elif password != cpassword: print('两次密码输入不一致') continue else: f.write('%s,%s '%(username,password)) f.flush() print('注册成功') break else: print('输入错误次数过多') f.close() #2、登陆功能实现: f = open('users.txt', 'a+', encoding='utf-8') f.seek(0) usersinfo = {} for line in f.readlines(): users_info= line.strip().split(',') usersinfo[users_info[0]] = users_info[1] for i in range(3): username = input('请输入用户名:') password = input('请输入密码:') if username in usersinfo.keys(): if password==usersinfo[username]: print('登录成功') break else: print('密码错误') else: print('用户不存在') else: print('输入错误次数过多') f.close()