zoukankan      html  css  js  c++  java
  • 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()
  • 相关阅读:
    Qt5."Clang Code Model"一些设置
    基于element表格的合并多个行实例
    vue中,基于echarts 地图实现一个人才回流的大数据展示效果
    vue2.0 子组件props接受父组件传递的值,能不能修改的问题整理
    vue调用组件,组件回调给data中的数组赋值,报错Invalid prop type check failed for prop value. Expecte
    vue,基于element的tree组件封装
    vue父子组件相互传值的实例
    基于vant实现一个问卷调查
    css3实现倾斜转动的转盘
    0801 am使用tp框架对数据库增删改查
  • 原文地址:https://www.cnblogs.com/youyou-luming/p/9568841.html
Copyright © 2011-2022 走看看