Python学习笔记--6 文件操作

一、文件读写
操作顺序如下:

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()
原文地址:https://www.cnblogs.com/youyou-luming/p/9568841.html