首页 > 其他分享 >文件操作

文件操作

时间:2023-03-28 12:36:52浏览次数:26  
标签:username 文件 用户 print real 操作 password

一听到文件操作大家肯定会第一时间想到with open哈哈哈哈,对的,因为太常用了。那么接下来咱总结一下吧!

with open('python基础.txt','r', encoding='utf-8') as f:
    pass  # 文件操作子代码

open()里面的一些参数讲解:
第一个:需要打开的文件路径
第二个:读写模式(有三种)
第三个:指定编码格式

读写模式

r read 只读模式
w write 只写模式
a append 只追加模式

文件操作模式有两种
文本模式 t
二进制模式 b

文件操作方法

1.read()
一次性读取文件内容 并且光标停留在文件末尾 继续读取则没有内容
并且当文件内容比较多的时候 该方法还可能会造成计算机内存溢出
括号内还可以填写数字 在文本模式下 表示读取几个字符
2.for循环
一行行读取文件内容 避免内存溢出现象的产生
3.readline()
一次只读一行内容
4.readlines()
一次性读取文件内容 会按照行数组织成列表的一个个数据值
5.readable()
判断文件是否具备读数据的能力
6.write()
写入数据
7.writeable()
判断文件是否具备写数据的能力
8.writelines()
接收一个列表 一次性将列表中所有的数据值写入
9.flush()
将内存中文件数据立刻刷到硬盘 等价于ctrl + s

有个登录案例(利用文件操作实现的,可以通过案例再次练习文件操作)

"""
利用文件充当数据库编写用户登录、注册功能
文件名称:userinfo.txt
基础要求:
用户注册功能>>>:文件内添加用户数据(用户名、密码等)
用户登录功能>>>:读取文件内用户数据做校验
ps:上述功能只需要实现一次就算过关(单用户) 文件内始终就一个用户信息
  拔高要求:
用户可以连续注册
用户可以多账号切换登录(多用户)  文件内有多个用户信息
ps:思考多用户数据情况下如何组织文件内数据结构较为简单
提示:本质其实就是昨天作业的第二道题 只不过数据库由数据类型变成文件
"""

while True:
    print("""
        1. register
        2. login
        """)
    choice = input('input choice number>>>:').strip()
    if choice == '1':
        print('Welcome to register')
        # 首先获取用户输入
        username = input('username>>>:').strip()
        password = input('password>>>:').strip()
        # 其次校验用户输入
        with open('userinfo.txt', 'r', encoding='utf-8') as f:
            for line in f:
                real_username, real_password = line.split('|')
                if username == real_username:
                    print('This username exist already')
                    break
            else:
                with open('userinfo.txt', 'w', encoding='utf-8') as f1:
                    f1.write(f'{username}|{password}\n')
                    print(f'Hello {username}, good to see you')
        # 保存到文件中
    elif choice == '2':
        print('Welcome to login')
        # 获取用户输入
        username = input('username>>>:').strip()
        password = input('password>>>:').strip()
        # 校验用户名和密码
        with open('userinfo.txt', 'r', encoding='utf-8') as f2:
            for line in f2:
                real_username, real_password = line.split('|')
                if username == real_username and password == real_password.strip('\n'):
                    print(f'Welcome {username}')
    else:
        print('wrong number')

标签:username,文件,用户,print,real,操作,password
From: https://www.cnblogs.com/almira998/p/17264701.html

相关文章

  • 前端 大文件上传解决方案(500M以上)
    ​ HTML部分 <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="index.aspx.cs" Inherits="up6.index" %><!DOCTYPE html PUBLIC "-//W3C//DTDXH......
  • Element-UI el-upload组件,上传失败,但是依然显示文件列表
    问题描述最近在使用element-ui的el-upload组件,发现一个问题,就是我在上传文件过程中,上传失败了,文件列表仍然展示该文件。解决办法上传成功on-success回调方法中//除......
  • C#:多线程操作Dictionary
    为了在多线程环境下操作Dictionary,我们需要确保线程安全。其中一种实现方式是使用ConcurrentDictionary类,该类位于System.Collections.Concurrent命名空间中。Concurrent......
  • Java 7如何操纵文件属性
    Java7如何操纵文件属性作者:chszs,转载需注明。准备写点基础性的文章,Java7已经出来很长一段时间了,但是很多Java程序员仍然停留在早期的Java5或Java6的基础上,对Java7的新......
  • linux操作--3
    crond任务调度概念与操作1.crond是用来进行定时任务管理的工具,具体语法如下2.特殊符号说明3.重启任务调度指令:servicecrondrestartat任务调度机制1.at任务是一次......
  • yaffs2文件系统移植出错
     1.问题:按照手册做文件系统移植的时候,在执行补丁/patch-ker.shc/opt/../linux-2.6.30.4/后,显示如下:  usage: ./patch-ker.sh c/lm/skernelpath  ifc/lis......
  • Hibernate 子类中不能用session 操作数据库
    Objectobj=this.getHibernateTemplate().execute(newHibernateCallback(){publicObjectdoInHibernate(Sessionsession)throwsHibernateExcep......
  • SQL.js -- 操作sqlite数据库
    js读写sqliteJavaScript是一种在浏览器中运行的脚本语言,无法直接读写SQLite数据库。不过,你可以使用一些JavaScript库或框架来操作SQLite数据库,例如SQLite.js和......
  • 常用的linux操作命令
    1、查看docker容器里面部署了哪些微服务的命令;docker ps2、查看某台机器上面防火墙开通了哪些端口;firewall-cmd--list-all 3、开启防火墙端口;  1)添加......
  • 字符串的常用操作
    这是字符串的常用操作汇总  下面是字符串的特点......