首页 > 其他分享 >09

09

时间:2022-10-09 16:15:31浏览次数:56  
标签:文件 路径 读取 09 模式 open name

今日内容总结

文件的读写模式

'''文件读写的三种模式(r  w  a)'''
通用格式:
with open(文件路径,模式,encoding='utf8') as f:
    pass
# 由于路径的填写需要使用斜杠符号 斜杠符号又会和一些字母产生特殊意义 所以使用r隔开
    eg:r'文件路径'
# r     只读模式
    只能读取文件的内容
    1.若文件路径不存在会直接报错
    2.若文件路径存在则正常读取文件
# w     只写模式
    只能写不能看
    1.文件路径不存在会直接创建一个
    2.文件路径若存在则会先清除选中的文件的内容 然后再待编写
# a     追加模式
    在文本末端添加数据
    1.文件路径不存在则会创建一个文件
    2.文件路径存在在文件的末端等待待追加的内容

文件的操作模式

'''操作模式有两种模式(t  b)'''
t   文本模式
   上述提到的三种r w a 全称是 rt wt at
    1.只能操作文本文件
    2.读写是以字符为单位
    3.需要encoding来指定参数 不指定则会使用计算机默认的参数 可能会出现乱码

b   二进制模式(bytes模式)
    rb wb ab
    1.可以操作所有文件格式
    2.读写是以字节(bytes)为单位
    3.不需要encoding来指定参数(计算机认识二进制,没那个必要了)
# 二进制读写与文本模式读写规律一样

文件的其他诸多模式

1.read()
    一次性的读取文件中的所有内容 光标停留在末尾 再次读取则无法获取内容
    括号内填写数字可指定读取多少字符
    # 在读取较大文件的时候一次性的读取会导致内存溢出
2.for循环
    避免了一次性读取导致的内存溢出
3.readline()
    一次只读一行内容
4.readlines()
    一次性读取所有内容 按照行数组成一个列表
5.readable()
    判断文件是否具有读取的能力
6.write()
    写入数据
7.writeable()
	判断文件是否有可被编写的能力
8.writelines()
    接受一个列表将列表的所有数据值写入
9.flush()
	将数据直接写入硬盘保存 (ctrl+s)

文件内光标的移动

格式:
with open(r'a.txt','rb') as f:
    f.seek(0,0)
'''
seek 的使用
    1.seek(offset,whence)
    offset 是光标的位移量
    whence 是模式 :0 1 2
    0 是基于文件开头 文本与二进制均可使用
    1 是基于当前位置 只有二进制可使用
    2 是基于末尾位置 只有二进制可使用
'''

训练

1.编写简易版本的拷贝工具
     自己输入想要拷贝的数据路径 自己输入拷贝到哪个地方的目标路径
     任何类型数据皆可拷贝
     ps:个别电脑C盘文件由于权限问题可能无法拷贝 换其他盘尝试即可
a = input('请输入需要拷贝的文件路径>>>:').strip()
b = input('请输入转移的路径>>>:').strip()
with open(fr'{a}','rb') as c:
    d = str(c.read())
with open(fr'{b}','w',encoding='utf8') as e:
    e.write(d)
    print('拷贝成功')
        
2.利用文件充当数据库编写用户登录、注册功能
  文件名称:userinfo.txt
  基础要求:
  		 用户注册功能>>>:文件内添加用户数据(用户名、密码等)
       用户登录功能>>>:读取文件内用户数据做校验
      ps:上述功能只需要实现一次就算过关(单用户) 文件内始终就一个用户信息
  拔高要求:
       用户可以连续注册
      用户可以多账号切换登录(多用户)  文件内有多个用户信息
      ps:思考多用户数据情况下如何组织文件内数据结构较为简单
    提示:本质其实就是昨天作业的第二道题 只不过数据库由数据类型变成文件
        
name = input('请输入你的用户名>>>:').strip()
psd = input('请输入你的密码>>>:').strip()
with open(r'D:\zh\a.txt', 'r', encoding='utf8') as f:
    for line in f:
        real_name, real_pwd = line.split('|')
        if name == real_name:
            print('用户名重复')
            break
    else:
        with open(r'D:\zh\a.txt', 'a', encoding='utf8') as b:
            b.write(f'{name}|{psd}\n')
            print(f'{name}注册成功')

标签:文件,路径,读取,09,模式,open,name
From: https://www.cnblogs.com/xiaochenxiangchangpang/p/16772465.html

相关文章

  • Java 时间字符串转成时间戳 2022-10-08 10:47:08 yyyy-MM-dd HH:mm:ss 1665290918
    Java工具类方法时间字符串转成时间戳2022-10-0810:47:08yyyy-MM-ddHH:mm:ss返回时间戳1665290918publiclonggettimeStemp(Stringtime,Stringformat){ Si......
  • 解决端口被占用问题(localhost:1099)
    问题:解决方法:(适用于所有端口被占用的情况)1、通过端口号找到PIDwin+Rcmd打开命令提示符,输入netstat-ano|find"1099"   2、通过PID找到进程输入tasklist|......
  • 测试开发【Mock 平台】09 开发:项目管理(五)搜索、删除和 Table 优化
    https://xie.infoq.cn/article/cddaf8d998b6738258d04046aMock平台系统项目基本配置,我们已经完成了展示,增加、修改,这个模块的进度其实已经差不多80%了,在本分享中将......
  • 00910 网络经济与企业管理简答、论述整理(自用版)
    目录第一章企业管理概论1、企业概念的要点(3个)2、公司制企业的特点(3个)3、组织职能的内容(5个)4、组织工作的基本原则【一小摊权权鞋】带上原则后缀(6个)5、领导活动的内容【领......
  • 【2022-09-30】连岳摘抄
    23:59我以为世间最可宝贵的就是“今”,最易丧失的也是“今”。因为他最容易丧失,所以更觉得他最可宝贵。                    ......
  • Centos7_docker509错误
    CentOS7Dockerx509:certificatesignedbyunknownauthority解决方案registry-1.docker.io/v2/1.echo-n|openssls_client-showcerts-connectregistry-1.doc......
  • 4859字,609行,一次讲清楚JVM运行数据区
    大家好,我是狂野君,这篇文章咱们继续聊下JVM性能优化的问题这篇文章主要介绍下JVM的运行数据区相关的内容,包括:程序计数器虚拟机栈本地方法栈堆方法区案例和总结好了,开始干货......
  • 09第二章:【08】合成复用原则
    合成复用原则(CompositeReusePrinciple)一、基本介绍合成复用原则:是尽量使用合成/聚合的方式,而不是会用继承。二、设计原则核心思想1、找出应用中可能需要变化之处,把......
  • P2709 小B的询问
    题目链接&本文的的参考文献1本文的参考文献2(这篇文章是xiezheyuan(洛谷的一个用户的用户名)的博客里的)另外我还采纳了同学的一些意见。这题主要的就是对一个静态的序列......
  • Java 面试题 09 - 计算机网络
    TCP&UDPTCP和UDP的区别有什么?TCP面向连接,UDP无连接。TCP提供可靠的传输,在传递数据之前,需要通过三次握手建立连接,在传递数据时,有确认、窗口、重传、拥塞机......