python基础10 文件操作 、多用户注册和多用户登录功能

文件基本操作

三步骤

  1.打开文件

  2.操作文件

  3.关闭文件

关键字:open

复制代码
 1 f=open(r'a.txt','r',encoding='utf8')
 2 print(f) # 操作系统打开文件
 3 
 4 # 操作文件:读、写
 5 res=f.read()
 6 
 7 # 关闭文件:释放资源
 8 f.close
 9 
10 
11 #方式二:
12 #with上下管理器
13 with open(r‘a.txt’,‘r’,encoding=‘utf8’) as f:
14         print(f.read())
复制代码

文件读写模式

r:read(读)

w:write(写)

a:append(追加写)

#r模式
#1.路径不存在,直接报错
with open(r‘a.txt’,‘r’,encoding=‘utf8’)as f:
    print(f.read())
 
#2.路径存在,打印结果
with open(r‘a.txt’,‘r’,encodi=‘utf8’)as f:
    print(f.read())
复制代码
#w模式
#1.路径不存在的,会自定创建出来文件
with open(r‘a.txt’,‘w’,enco=‘utf8’)as f:
    print(f.write())

#2.路径存在
#把文件的原本数据清除,从新写入
with open(r,‘a.txt’,‘w’,encoding=‘utf8’)as f:
    f.write(‘hello’)
#写文件的数据类型必须是字符串类型,和字节类型,其他类型都不能直接写入
复制代码
#a模式
#1.路径不存在,会自动创建出新文件
with open(r‘a.txt’,‘a’,encoding=‘utf8’)as f:
    f.read(‘hello’)

#2.路径存在,在原来文件末尾新加内容
with ope(r‘a.txt’,‘a’,encoding=‘utf8’)as f:
    f.read.(‘hello\n’)

文件操作方法

1.读系列

复制代码
#读系列
with open(r‘b.txt’,‘r’,encoding=‘utf8’)as f:
    print(f.read())
#一次读qu文件的一行内容,一行一行读取
    print(f.readline())
#读取文件的内容用列表形式表现出来,一行代表一个元素
    print(f.readlines())
#判断文件是否可读
    print(f.readable())
复制代码

2.xie系列

#2.写系列
with open(r‘a.txt’,‘w’,encoding=‘utf8’)as f:
    f.write(‘hello baby’)
    f.write(str(123))#只能写字符串
#判断是否可读
    fprint(f.writable())
    f.writelines(['hello\n','world\n','kevin','jack'])

文件的读操作优化

with open(r'a.txt','r',encoding='utf8') as f:
   '''read方法是一次性读取文件的全部内容,所以,当文件内容非常打的时候,有可能造成内存溢出
     我们不允许这样的情况发生,当当文件内容非常小的时候,无所谓
    针对上述问题如何解决?'''
    利用for循环来解决
for line in f:
    print(line)#for循环就是一行一行的读取内容

课堂练习

简易版的注册与登录功能

复制代码
注册功能
# # 1.把用户名保存到文件夹中
# # 1.1 让用户输入用户名和密码
# username = input('请输入你的用户名>>>:').strip()
# password = input('请输入你的密码>>>:').strip()
# # 1.2把用户输入的密码存到文件中
# res = '%s|%s' % (username, password)
# with open(r'a.txt', 'a', encoding='utf8') as f:
#     f.write(res\n)
#     print('{}注册成功'.format('username'))


登录功能
# # 1.把用户名保存到文件夹中
# # 1.1 让用户输入用户名和密码
# username = input('请输入你的用户名>>>:').strip()
# password = input('请输入你的密码>>>:').strip()
# # 1.2把用户输入的密码存到文件中
# res = '%s|%s' % (username, password)
# with open(r'a.txt', 'a', encoding='utf8') as f:
#     f.write(res\n)
#     print('{}注册成功'.format('username'))
复制代码

多用户注册和多用户下的登录功能

复制代码
多用户注册
         while True:
            username = input('请输入你的用户名>>>:').strip()
            password = input('请输入你的密码>>>:').strip()
            # 判断用户名是否存在
            with open(r'a.txt', 'r', encoding='utf8') as f2:
                for i in f2:
                    i1 = i.split('|')
                    if username == i1[0]:
                        print('用户已经注册')
                        break
                else:
                    # 1.2把用户输入的密码存到文件中
                    res = '%s|%s\n' % (username, password)
                    with open(r'a.txt', 'a', encoding='utf8') as f:
                        f.write(res)
                        print('{}注册成功'.format('username'))  


多用户登录
 user_name = input('请输入你的用户名>>>:').strip()
        user_password = input('请输入你的密码>>>:').strip()
        # 2.2读出文件内容
        with open(r'a.txt', 'r', encoding='utf8') as f1:
            for line in f1:
                line.split('|')
                if user_name == line.split('|')[0] and user_password == line.split('|')[1].strip('\n'):
                    print('登陆成功')
                    break
            else:
                print('登录失败')        
复制代码

整合代码

复制代码
while True:
    print("""
    1.选择用户注册
    2.选择用户登录
    3.退出
    """)
    new_name = input('请输入你选择的编号:>>>')
    if new_name == '1':
        print('进入用户注册程序')
        while True:
            username = input('请输入你的用户名>>>:').strip()
            password = input('请输入你的密码>>>:').strip()
            # 判断用户名是否存在
            with open(r'a.txt', 'r', encoding='utf8') as f2:
                for i in f2:
                    i1 = i.split('|')
                    if username == i1[0]:
                        print('用户已经注册')
                        break
                else:
                    # 1.2把用户输入的密码存到文件中
                    res = '%s|%s\n' % (username, password)
                    with open(r'a.txt', 'a', encoding='utf8') as f:
                        f.write(res)
                        print('{}注册成功'.format('username'))
                break
    # 2.1取出文件的内容
    elif new_name == '2':
        print('进入用户登录程序')
        user_name = input('请输入你的用户名>>>:').strip()
        user_password = input('请输入你的密码>>>:').strip()
        # 2.2读出文件内容
        with open(r'a.txt', 'r', encoding='utf8') as f1:
            for line in f1:
                line.split('|')
                if user_name == line.split('|')[0] and user_password == line.split('|')[1].strip('\n'):
                    print('登陆成功')
                    break
            else:
                print('登录失败')
    elif new_name == '3':
        break
    else:
        print('输入有误,请按提示输入')
复制代码

文件操作模式

t模式:text文本

r》》》rt

w》》》wt

a》》》at

  1.以字符串为基本单位

  2.它只能操作字符串形式

  3.encoding参数必须写

b模式:bytes二进制模式

r》》》rb

w》》》wb

a》》》ab

  1.b不能省略,必须写rb

  2.他可以操作任意的数据类型:视频、音频‘图片

  3.encoding参数必须不写

  4.它的数据以字节为单位’

posted @   Py玩家  阅读(240)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
点击右上角即可分享
微信分享提示