python----文件

python文件操作

1. 文件的类型

文本类型: 需要能够看的懂(文字), 指定正确的编码
编码:
utf-8
gbk
latin1 (英文)
big5 (繁体)
二进制类型: 直接能够运行的文件就是二进制文件(内容: 二进制)

2. 文件的作用:

目的 永久的保存数据不丢失

3. 文件操作的步骤:
3.1打开文件

fp = open(文件路径,打开方式,encoding=“编码方式”)
打开方式:
文本操作: r(读) w(覆盖写, 自动创建) a(追加, 自动创建)
二进制操作: rb wb ab (读写追加二进制文件)

3.2读写文件

读:
fp.read() : 读完
fp.read(number): 读取指定个数字符
fp.readline(): 一次读一行
fp.readlines(): 按行读取所有

fp=open("../user.txt","r",encoding="utf-8")
data=fp.read()
print(data)

写:
fp.write(数据)
fp.writelines([列表]): 写入多条数据(不换行)

fp=open("../data.txt","w",encoding="utf-8")#覆盖
num=fp.write("你好彭于晏")
print(num)#返回修改数字
fp.close()
fp=open("../data.txt","a",encoding="utf-8")#追加
fp.writelines(["\n你好","我好","大家好","好好好"])
fp.close()
3.3关闭文件

fp.close()

  1. 循环读取文件内容 (解决大文件读取问题)
    data = fp.read(1024)
    while data: # 其他类型的数据也可以当作布尔值
    # 操作data
    # 继续读
    data = fp.read(1024)
案例:

需求:
程序启动,提示用户登录或者注册
选择注册->要求输入用户名和密码->返回注册提示信息
选择登录->要求输入用户和密码->判断是否登录成功

while True:
    print("""
    欢迎
    1 登录
    2 注册
    0 退出
    """)
    num=int(input("请选择功能序号:"))
    if num==1:
        print("欢迎进入登录页面!")
        # 要求输入用户名和密码
        name = input("请输入用户名:")
        paw = input("请输入用户密码:")
        # 判断是否登录成功
        # 读取文件内容进行
        # 打开文件
        fp = open("./user.txt", "r", encoding="utf-8")
        # 一行一行读取 使用循环
        data = fp.readline()  # 先读一次
        # print(data)彭于晏|123456
        while data:
            # 对比
            user = data.strip().split("|")  # 去除空格和分隔
            # print(user)#['彭于晏', '123456']
            if user[0] == name and user[1] == paw:
                print(f"欢迎你{name}")
                break  # 结束循环
            # 继续读
            data = fp.readline()  # 循环体,
        else:
            print("用户名或密码错误")
        # 关闭
        fp.close()

        # 登录成功就提示
        # 失败提示
    elif num==2:
        print("欢迎进入注册页面!")
        #要求输入用户名和密码
        name=input("用户名:")
        paw=input("密码:")
        #打开文件
        fp=open("./user.txt","a",encoding="utf-8")
        #写文件
        fp.writelines(f"{name}|{paw}\n")
        #关闭
        fp.close()

        # 返回注册提示信息
        print(f"{name}注册成功")
    elif num==0:
        print("欢迎下次光临~")
        break
    else:
        print("请输入正确序号")

冲冲冲!!!

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值